[英]Merging back new calculations in original pandas dataframe
假设我有一个名为“ df”的熊猫数据框,如下所示:
X Y Z
0 -3 6 -7
1 -4 -10 -1
2 9 -10 -9
3 5 0 -8
4 -2 1 -8
我想从df中的某些行中创建一个新框架:
new_df = df.loc[(df['X'] == -3) & (df['X'] == 9)]
然后修改新的数据框:
new_df.Y = 150
是否有一种简单的方法可以将新数据框架重新插入旧框架,从而仅替换在新框架中修改的那些值?
所以最后,我将得到原始的“ df”,它看起来像这样:
X Y Z
0 -3 150 -7
1 -4 -10 -1
2 9 -150 -9
3 5 0 -8
4 -2 1 -8
如果要用条件替换值,则可以一步完成,即指定行和列条件并分配值,并且可以避免将新数据框与原始数据框合并:
df.loc[(df['X'] == -3) | (df['X'] == 9), "Y"] = 150
# I assume you mean or instead of and from your result
df
# X Y Z
#0 -3 150 -7
#1 -4 -10 -1
#2 9 150 -9
#3 5 0 -8
#4 -2 1 -8
只要指数new_df
没有被修改,您可将new_df.Y
回DF修改已经作出后new_df
:
df.loc[(df['X'] == -3) | (df['X'] == 9), "Y"] = new_df.Y
甚至:
df.loc[(df['X'] == -3) | (df['X'] == 9)] = new_df
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.