我想添加此数据框
数据帧1(大小3X1):
>> df1
0
0 2.0
1 1.0
2 3.0
到这个数据框:
数据帧2(大小3x3):
>> # actually number of columns > 3
>> df2
0 1 2
0 100 200 300
1 110 210 310
2 120 220 320
屈服:
0 1 2
0 102 202 302
1 111 211 311
2 123 223 323
即根据相应的行,将d1
添加到d2
中的每一列。
但为什么这不会做:
>> df1 + df2
0 1 2
0 102 NA NA
1 111 NA NA
2 123 NA NA
做正确的方法是什么?
答案 0 :(得分:2)
复制第一个数据框中的列,然后添加两个数据框将是继续进行的方式之一。
>>> import pandas as pd
>>> pd.concat(3*[df1], axis=1, ignore_index=True) + df2
0 1 2
0 102 202 302
1 111 211 311
2 123 223 323
我假设你知道你需要多少次连接列(这里是3)!
答案 1 :(得分:2)
不对索引做出假设,如果它们是否对齐,您可以先使用.reindex_axis
对齐行,然后在.values
上使用numpy广播规则,最后重构帧:
>>> df1.values + df2.reindex_axis(df1.index).values
array([[ 102., 202., 302.],
[ 111., 211., 311.],
[ 123., 223., 323.]])
>>> pd.DataFrame(_, columns=df2.columns, index=df2.index)
0 1 2
0 102 202 302
1 111 211 311
2 123 223 323