让
df
是一些数据框; X
是一个包含某些df
列的数字索引的元组; df0
是df
给出的df.iloc[:, X]
的子数据帧;和df1
是df0
的某种变换,len(df1)
等于len(df0)
,df1.columns
等于df0.columns
; 因此df.iloc[:, X]
具有与df1
相同的形状。
我希望更新 df.iloc[:, X]
子数据框的内容,方法是为其分配df1
。
如果我做了天真的事情:
df.iloc[:, X] = df1
即使NaN
中没有NaN
,
大部分已更新的列(尽管不是全部,但都很奇怪)都会被df1
填充。
我认为这与df1
相对于df
的索引有关,但无法找到解决方案。 (我试过的一个Hail-Mary-Pass事情就是设置df1.index = df.index
,但它不起作用 1 。)
1 不足为奇,因为我不知道自己在做什么,但并不是因为没有尝试。我已经阅读了Pandas的书,以及一些教程,博客等,以及一些源代码,但与Pandas合作对我来说仍然有些俄罗斯轮盘赌。