簡體   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