我正在寻找一种快速方法将 df_row
(只有 1 行的数据帧,列可能小于 24)插入 df_master
(只有很少行的数据帧)千行 24 列)
例如:
df_row
A B C D E F G .... H
1 2 3 4 5 6 7 .... 8
df_master
A B C D ........................... Y
我正在寻找一种将 df_row 插入到 df_master 的快速方法,并为 df_row 中不存在的列设置 NaN。
以前,我在做
df_master = df_master.append(df_row)
但是随着 df_master
变得更好,这种方法会变得更慢。
有没有一种快速的方法来就地追加?
最佳答案
您可以使用setting with enlargement ,但需要将 df1
转换为 Series
- 例如通过选择iloc
:
d = {'F': {0: 6}, 'D': {0: 4}, 'B': {0: 2}, 'C': {0: 3},
'A': {0: 1}, 'E': {0: 5}, 'G': {0: 7}, 'H': {0: 8}}
df = pd.DataFrame(d)
print (df)
A B C D E F G H
0 1 2 3 4 5 6 7 8
df1 = pd.DataFrame([[10,20,30,40]], columns=list('ACDE'))
print (df1)
A C D E
0 10 20 30 40
df.loc[len(df.index)] = df1.iloc[0]
print (df)
A B C D E F G H
0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0
1 10.0 NaN 20.0 30.0 40.0 NaN NaN NaN
关于Python pandas 将行插入 DF 并将缺失值作为 Nan 的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45439914/