所以我从现有的CSV文件创建了两个数据帧,两者都由完全数字组成。第二个数据帧由一个0到8783之间的索引和一列数字组成,我想将它作为新列添加到第一个数据帧,该数据帧的索引由月,日和小时组成。我尝试使用append,merge和concat但没有工作,然后尝试使用:
x1GBaverage['Power'] = x2_cut
其中x1GBaverage是第一个数据帧,x2_cut是第二个。当我这样做时,它正确地添加了x2_cut,但所有的值都输入为NaN而不是它们应该是的数值。我该怎么接近这个?
答案 0 :(得分:1)
x1GBaverage [' Power'] = x2_cut.values
问题解决了:)
关于pandas的事情是,除非你故意指明你只需要传输的值,否则值会隐含地链接到它们的索引。
答案 1 :(得分:0)
如果它们是相同的行数并且您只想在最后添加它,那么索引要么需要匹配,要么只需要传递基础值。在下面的示例中,第3列和第5列是索引匹配&价值版本,4是你现在遇到的:
In [58]: df = pd.DataFrame(np.random.random((3,3)))
In [59]: df
Out[59]:
0 1 2
0 0.670812 0.500688 0.136661
1 0.185841 0.239175 0.542369
2 0.351280 0.451193 0.436108
In [61]: df2 = pd.DataFrame(np.random.random((3,1)))
In [62]: df2
Out[62]:
0
0 0.638216
1 0.477159
2 0.205981
In [64]: df[3] = df2
In [66]: df.index = ['a', 'b', 'c']
In [68]: df[4] = df2
In [70]: df[5] = df2.values
In [71]: df
Out[71]:
0 1 2 3 4 5
a 0.670812 0.500688 0.136661 0.638216 NaN 0.638216
b 0.185841 0.239175 0.542369 0.477159 NaN 0.477159
c 0.351280 0.451193 0.436108 0.205981 NaN 0.205981
如果行数不同,则需要使用df.merge
并让它知道应该使用哪些列来连接两个帧。