簡體   English   中英

Pandas 有條件地將值從一列復制到另一行

[英]Pandas conditionally copy values from one column to another row

我有這個 Dataframe: 數據框

我想將 Date 列的值復制到 New_Date 列,但不僅復制到完全相同的行,我還想復制到具有相同 User_ID 值的每一行。

所以,它將是: 像這樣!

我嘗試了 groupby 然后復制,但是 groupby 使所有值都變成了列表,並且具有相同 user_id 的其他列可以在不同的行中具有不同的值,然后它搞砸了很多事情。

我也試過:

df['New_Date'] = df.apply(lambda x: x['Date'] if x['User_ID'] == x['User_ID'] else x['New_Date'], axis=1)

但它只將值復制到同一行,而將其他兩個留空。

和這個:

if (df['User_ID'] == df['User_ID']):
    df['New_Date'] = np.where(df['New_Date'] == '', df['Date'], df['New_Date'])

沒有人完成我的意圖。

感謝您的幫助,謝謝!

嘗試這個:

df['New_Date'] = df.groupby('User_Id')['Date'].transform('first')

如果我理解正確,只需復制 Date 列,然后將.fillna()ffill=True一起使用。 如果您將數據作為文本發布,我可以提供示例代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM