我不知道该如何正确地表达这个词,但是我有一个脚本,该脚本接受每一列的总和并置于其下。因此,一行称为“总计”。相反,我希望此“总计”是一列而不是一行。值正确,但现在的格式不正确。
import pandas as pd
import numpy as np
headers = [*pd.read_csv("filename",sep='\t', nrows =1)]
df = pd.read_csv("filename",sep='\t', usecols=[c for c in headers if c != 'filenotes'])
df.dropna()
df = df.iloc[:,np.r_[7:20]]
df.loc['Total',:] = df.sum(axis=0)
df.to_csv("filename",sep='\t',index=False)
编辑以澄清我的代码已经做到了
a b c
2 1 3
2 4 6
3 6 9
total 7 11 18
我要它做
a b c total
2 1 3 7
2 4 6 11
3 6 9 18
这是因为列本身实际上是合并的数据。我有一列表示“箱”,并且需要总计数在其各自的值旁边。
我将用它制作条形图
您可以更改此行:
df.loc['Total',:] = df.sum(axis=0)
至:
df['Total'] = df.sum(axis=0)
他们将分配一个新列。
编辑:
尝试使用tolist
:
>>> a = df.sum(0).tolist()
>>> df['Total'] = a + ((len(df) - len(a)) * [np.nan])
>>> df
a b c Total
0 2 1 3 7
1 2 4 6 11
2 3 6 9 18
>>>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句