繁体   English   中英

在原始熊猫数据框中合并新的计算

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM