Python 使用iloc更新数据帧位置
我试图通过将数据帧行与另一个数据帧求和并存储在该数据帧中来更新该数据帧行。例如,如果df_1=x0,x1,x2和df_2=y0,y1,y2。我想添加df_1+df_2并将其存储在df_1中。下面列出了我的代码,我得到一个错误“与DataFrame不兼容的索引器”。我注意到我可以打印(df_weights.iloc[I,:]+new_df),但我不能将数据帧行设置为等于该总和Python 使用iloc更新数据帧位置,python,pandas,dataframe,Python,Pandas,Dataframe,我试图通过将数据帧行与另一个数据帧求和并存储在该数据帧中来更新该数据帧行。例如,如果df_1=x0,x1,x2和df_2=y0,y1,y2。我想添加df_1+df_2并将其存储在df_1中。下面列出了我的代码,我得到一个错误“与DataFrame不兼容的索引器”。我注意到我可以打印(df_weights.iloc[I,:]+new_df),但我不能将数据帧行设置为等于该总和 print('weights:\n',df_weights) test = df_weights.sum(axis=0)
print('weights:\n',df_weights)
test = df_weights.sum(axis=0)
test = (1 - test)/8
new_df = pd.DataFrame(test)
new_df = new_df.transpose()
print('new df:\n',new_df)
for i in range(0,df_rows):
df_weights.iloc[i,:] = df_weights.iloc[i,:] + new_df
输出
weights:
0 1 2 3
m00 0.215545 -0.0734553 -0.260289 -0.0204819
mu02 -0.176883 -0.197607 0.194261 -0.024145
mu11 0.295823 -0.239761 -0.177467 -0.216388
mu20 -0.175377 0.166371 0.020717 0.229208
mu03 0.13808 -0.339882 -0.0601851 0.273308
mu12 0.331139 -0.253927 -0.268115 0.30846
mu21 0.0945824 0.126653 -0.176058 0.0993816
mu30 0.0940057 0.0738258 -0.078831 -0.049587
new df:
0 1 2 3
0 0.022886 0.217223 0.225746 0.05003
在末尾添加
值
,以消除索引
匹配的影响
for i in range(0,df_rows):
df_weights.iloc[i,:] = df_weights.iloc[i,:].values + new_df.values
谢谢你把它修好了!但你所说的索引匹配是什么意思?抱歉,python对我来说是一个全新的东西,我仍在试图找出它的一些细微差别it@user2635999新的_df的索引始终为0,当分配值pandas将首先匹配索引时,df索引与新的_df不同,因此返回NaN