经过几次数据处理后,我得到了2个列表 avglist 和 sumlist 现在我将这2个列表传递给了我的 result_df
result_df = pd.DataFrame({"File Name": filelist ,"Average":avglist,"Sum":sumlist})
print(result_df)
所以下面是我的输出结果,但是这里的问题是
1)甚至我的标题Continental AG,数据类型信息也包括..
我只是我的值“ 874”和总计584。
-我尝试了avglist.value(),但.value不是列表函数
还尝试了.index的少量变化,但未获得预期的结果。
我在这里错过了任何步骤吗?
答案 0 :(得分:0)
导入文件的方式出了问题。如果您获取数据帧的tuple
,它将返回给您列的总和。我怀疑您可能正在这样做,因为您正在对一个数据帧求和。然后,当您尝试将列表放在另一个数据框中时,它看起来很时髦。
let采用以下两个数据帧:
()
查看这些数据帧之一的总和:
init : () -> (Model, Cmd Msg)
现在我们是否要获取数据帧的总和并将它们放在列表中:
.sum()
当我们检查时得到:
df = pd.DataFrame({'a':[1, 20, 30, 4, 0],
'b':[1, 0, 3, 4, 0],
'c':[1, 3, 7, 7, 5],
'd':[1, 8, 3, 8, 5],
'e':[1, 11, 3, 4, 0]})
df2 = pd.DataFrame({'a':[1, 20, 100, 4, 0],
'b':[1, 0, 39, 49, 10],
'c':[1, 3, 97, 7, 95],
'd':[441, 38, 23, 8, 115],
'e':[1, 11, 13, 114, 0]})
如果您想要整个数据帧的总和而不只是按列,则可以使用df.sum()
a 55
b 8
c 23
d 25
e 19
dtype: int64
,它首先按列求和,然后再对这些列求和
sums = [x.sum() for x in [df, df2]]
因此,跨数据帧将是:
[a 55
b 8
c 23
d 25
e 19
dtype: int64, a 125
b 99
c 203
d 625
e 139
dtype: int64]
执行均值将取决于您的csv的状态。如果您要进行.sum().sum()
,则可能与您要查找的内容大不相同。如果每次只有1列就可以了。但是如果更多,它将取5列的平均值,然后取该平均值(那些5的平均值相加后除以5)。
最后,您的列的名称似乎是“ Continental AG(Worldwide)”。
因此,在您的for循环中,您应该这样做:
df.sum().sum()
130
答案 1 :(得分:0)
我有时像下面这样进行少量操作...
while i < len(filepath):
.....
df['Date']=df['Time'].apply(lambda i:i.split('T')[0])
.......
.......
sum1=sum_df.sum(axis=0)
avg1=Avg_df.sum(axis=0)
.......
.......
avglist.append(avg1)
sumlist.append(sum1)
.....
i+=1
所以我将所有操作更改为以下内容。
df['Date']=df.iloc[:,0].apply(lambda i:i.split('T')[0])
.........
.........
sum1=sum_df.iloc[:,0].sum()
avg1=Avg_df.iloc[:,0].mean()
.....
.....
avglist.append(avg1)
sumlist.append(sum1)
而不是在操作中使用列名,轴。
我在所有操作中均更新为dataframe.iloc
,并开始为我提供正确的结果。
仍然不确定确切的原因,但这对我有用。