2 回答

TA贡献2011条经验 获得超2个赞
如果指定所有列,则可以按如下方式进行:
df2.loc[0:1, ['P', 'Q', 'R', 'S', 'T']] = df1.loc[0:1].values
结果数据框:
M N O P Q R S T
0 1 2 3 8.0 6.0 4.0 9.0 7.0
1 4 5 6 2.0 6.0 3.0 8.0 5.0
2 7 8 9
3 8 6 5
4 5 4 3

TA贡献1841条经验 获得超3个赞
您可以将匹配的列和索引名称重命名为 second DataFrame,因此可能DataFrame.update用于 tuple 指定的正确方式pos:
data_1 = df1.loc[0:1]
print (data_1)
A B C D E
0 8 6 4 9 7
1 2 6 3 8 5
pos = (2, 'P')
data_1 = data_1.rename(columns=dict(zip(data_1.columns, df2.loc[:, pos[1]:].columns)),
index=dict(zip(data_1.index, df2.loc[pos[0]:].index)))
print (data_1)
P Q R S T
2 8 6 4 9 7
3 2 6 3 8 5
df2.update(data_1)
print (df2)
M N O P Q R S T
0 1 2 3 NaN NaN NaN NaN NaN
1 4 5 6 NaN NaN NaN NaN NaN
2 7 8 9 8.0 6.0 4.0 9.0 7.0
3 8 6 5 2.0 6.0 3.0 8.0 5.0
4 5 4 3 NaN NaN NaN NaN NaN
工作rename原理 - 想法是选择指定列之后的所有列和所有索引值,索引名称按loc然后按列名称压缩data_1并转换为字典。data_1所以最后用下一列、索引值替换 bot、索引和列名称。
添加回答
举报