我正在尝试对不同的数据框进行求和,例如数据帧a ,数据帧b 和数据帧c 。
Dataframe a 在python代码中定义如下:
a=pd.DataFrame(index=range(0,8), columns=[0])
a.iloc[:,0]=0
( a.iloc [:,0] = 0 用于启用算术运算,即将&#34; NaN&#34;替换为&#34;零&#34;)< / p>
Dataframe b 和 Dataframe c 从excel表中调用,如下所示:
b=pd.read_excel("Test1.xlsx")
c=pd.read_excel("Test2.xlsx")
Excel工作表包含与 Dataframe a 相同的行数。样本是:
10
11
12
13
14
15
16
17
18
19
现在,当我尝试添加时,b+c
会提供精确的输出,但a+b
或a+c
会给出:
0 10
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
4 NaN NaN
5 NaN NaN
6 NaN NaN
7 NaN NaN
8 NaN NaN
为什么会发生这种情况,即使在为 Dataframe a 分配数字之后呢? 请帮忙。
答案 0 :(得分:0)
Pandas将为您处理索引。您应该能够生成和添加数据框,如此处所示
import pandas as pd
a = pd.DataFrame(list(range(8)))
b = pd.DataFrame(list(range(9,17)))
c = a + b
使用您提供的代码生成数据会生成仅包含零的数据帧。然而,即使你生成其中两个并添加它们,你将再次得到一个全零的数据帧。
a = pd.DataFrame(index=range(0,8), columns=[0])
a.iloc[:,0] = 0
b = pd.DataFrame(index=range(0,8), columns=[0])
b.iloc[:,0] = 0
c = a + b # All zeroes
我还可以添加所有组合,例如b+c
。