Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将求和的行转换为列_Python_Pandas - Fatal编程技术网

Python 如何将求和的行转换为列

Python 如何将求和的行转换为列,python,pandas,Python,Pandas,我不知道如何恰当地使用这个词,但我有一个脚本,它记录了每一列的总和及其下的位置。所以有一行叫做total。相反,我希望这个总数是一列,而不是一行。这些值是正确的,但它现在的格式不正确 import pandas as pd import numpy as np headers = [*pd.read_csv("filename",sep='\t', nrows =1)] df = pd.read_csv("filename",sep='\t', useco

我不知道如何恰当地使用这个词,但我有一个脚本,它记录了每一列的总和及其下的位置。所以有一行叫做total。相反,我希望这个总数是一列,而不是一行。这些值是正确的,但它现在的格式不正确

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)
致:

它将为它们分配一个新列

编辑:

尝试使用tolist:


您可以更改这一行:

df.loc['Total',:] = df.sum(axis=0)
致:

它将为它们分配一个新列

编辑:

尝试使用tolist:

资料

资料

试试这个:

df["Total"] = df.sum().values
只有当数据框为方形时,它才起作用。列数=行数。

尝试以下方法:

df["Total"] = df.sum().values


只有在数据框是方形的情况下,它才有效。列数=行数。

我试过了。当我出于某种原因这样做时,只有“总计”列中没有值blanks@Connor你能试试我编辑过的部分吗?乐在我的编辑-我试着clarify@Connor现在应该可以工作了,检查编辑的部分“ValueError:值的长度与索引的长度不匹配”我下载的数据来源并不完美。有没有办法强迫它在第一栏写上“总计”,然后让其他部分继续进行。我试过了。当我出于某种原因这样做时,只有“总计”列中没有值blanks@Connor你能试试我编辑过的部分吗?乐在我的编辑-我试着clarify@Connor现在应该可以工作了,检查编辑的部分“ValueError:值的长度与索引的长度不匹配”我下载的数据来源并不完美。有没有办法强迫它在第一列加上“total”并继续进行其余的操作。我的脚本已经这样做了。如果不清楚我要做的是将这一行的总数转换成一个具有相同值的列。因此,一个名为total的列在第1行中有10个,第2行中有26个。以此为例,请将您的预期输出作为表格发布。视觉效果可以是相当好的helpful@Connordf.loc['total']=df.sum,然后是df.T?不,不是整个数据帧的转置,只是将一个特定的总计行作为一个列。刷新页面,我添加了澄清。我有一列表示“箱子”,需要在其各自的值旁边显示总计数。很抱歉误会我的脚本已经完成了。如果不清楚我要做的是将这一行的总数转换成一个具有相同值的列。因此,一个名为total的列在第1行中有10个,第2行中有26个。以此为例,请将您的预期输出作为表格发布。视觉效果可以是相当好的helpful@Connordf.loc['total']=df.sum,然后是df.T?不,不是整个数据帧的转置,只是将一个特定的总计行作为一个列。刷新页面,我添加了澄清。我有一列表示“箱子”,需要在其各自的值旁边显示总计数。抱歉,您误解了df['total]=df.sum1请说明如何提问。这可能会有所帮助。这个例子没有任何意义:11不是数据第一行的行和。你能重新检查并修正你的例子吗?你的意思是“6”,对吗?根据你的描述,似乎你真的想计算列和,但随后只将该行转换为一个额外的“列”,称为“总计”。第五个版本在视觉上仍然令人困惑:行和2+1+3=6而不是7,2+4+6=12而不是11。df['total']=df.sum1请说明如何提问。这可能会有所帮助。这个例子没有任何意义:11不是数据第一行的行和。你能重新检查并修正你的例子吗?你的意思是“6”,对吗?根据你的描述,似乎你真的想计算列和,但随后只将该行转换为一个额外的“列”,称为“总计”。第五次修订在视觉上仍然令人困惑:行和2+1+3=6而不是7,2+4+6=12而不是11。
df["Total"] = df.sum().values