python:将特定索引处的行从一个数据帧插入到另一个数据帧

我有两个数据框如下:


df1:


    A   B   C   D   E

0   8   6   4   9   7

1   2   6   3   8   5

2   0   7   6   5   8

df2:


    M   N   O   P   Q   R   S   T

0   1   2   3

1   4   5   6

2   7   8   9

3   8   6   5

4   5   4   3

我从中取出了一部分数据df1如下:


>data_1 = df1.loc[0:1]

>data_1

    A   B   C   D   E

0   8   6   4   9   7

1   2   6   3   8   5

现在我需要将它插入data_1到(行,列)df2的特定位置。Index(0,P)有什么办法吗?我不想打扰df2.


我可以提取每个单元格的单独值并执行此操作,但由于我必须对大型数据集执行此操作,因此不可能按单元格进行。


单元格方法:


>var1 = df1.iat[0,1]

>var2 = df1.iat[0,0]


>df2.at[0, 'P'] = var1

>df2.at[0, 'Q'] = var2


临摹微笑
浏览 134回答 2
2回答

森林海

如果指定所有列,则可以按如下方式进行:df2.loc[0:1, ['P', 'Q', 'R', 'S', 'T']] = df1.loc[0:1].values结果数据框:    M   N   O     P    Q    R    S    T0   1   2   3   8.0  6.0  4.0  9.0  7.01   4   5   6   2.0  6.0  3.0  8.0  5.02   7   8   93   8   6   54   5   4   3

偶然的你

您可以将匹配的列和索引名称重命名为 second DataFrame,因此可能DataFrame.update用于 tuple 指定的正确方式pos:data_1 = df1.loc[0:1]print (data_1)   A  B  C  D  E0  8  6  4  9  71  2  6  3  8  5pos = (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  T2  8  6  4  9  73  2  6  3  8  5df2.update(data_1)print (df2)   M  N  O    P    Q    R    S    T0  1  2  3  NaN  NaN  NaN  NaN  NaN1  4  5  6  NaN  NaN  NaN  NaN  NaN2  7  8  9  8.0  6.0  4.0  9.0  7.03  8  6  5  2.0  6.0  3.0  8.0  5.04  5  4  3  NaN  NaN  NaN  NaN  NaN工作rename原理 - 想法是选择指定列之后的所有列和所有索引值,索引名称按loc然后按列名称压缩data_1并转换为字典。data_1所以最后用下一列、索引值替换 bot、索引和列名称。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python