繁体   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