Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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 使用pandas从多个csv获取的一个字段(列)数据的总和_Python_Csv - Fatal编程技术网

Python 使用pandas从多个csv获取的一个字段(列)数据的总和

Python 使用pandas从多个csv获取的一个字段(列)数据的总和,python,csv,Python,Csv,我有多个像这样的CSV文件 “A.csv” “B.csv” “C.csv” 我希望将天数和pid一起“滑入”,然后将wscore、lscore、wk、wd、lk和ld的平均值一起“滑入” 示例output.csv day,pid,wscore,lscore,wk,wd,lk,ld 1,"A,B",1,0,1.5,0.5,0.5,1.5 2,"B,C",2,1.5,2, ... 3,"C",1,2,2, ... 4,"A,B",2,1, ... 5,"A,B,C",2.5, ... ... 我怎

我有多个像这样的CSV文件

“A.csv”

“B.csv”

“C.csv”

我希望将天数和pid一起“滑入”,然后将wscore、lscore、wk、wd、lk和ld的平均值一起“滑入”

示例output.csv

day,pid,wscore,lscore,wk,wd,lk,ld
1,"A,B",1,0,1.5,0.5,0.5,1.5
2,"B,C",2,1.5,2, ...
3,"C",1,2,2, ...
4,"A,B",2,1, ...
5,"A,B,C",2.5, ...
...
我怎样才能做到这一点? 多谢各位

df=pd.concat([A,B,C],axis=0)#A=pd.read_csv('A.csv')
如果在
pid

 pd.concat([df.groupby(['day'])['pid'].sum(),df.groupby(['day']).mean()],axis=1)
Out[297]: 
     pid    wscore    lscore        wk        wd        lk        ld
day                                                                 
1     AB  1.000000  0.000000  1.500000  0.500000  0.500000  1.500000
2     BC  2.000000  1.500000  2.000000  1.000000  1.000000  1.500000
3      C  1.000000  2.000000  2.000000  1.000000  2.000000  2.000000
4     AB  2.000000  1.000000  1.500000  1.000000  1.500000  1.000000
5    ABC  1.666667  1.333333  1.666667  0.666667  0.666667  1.333333
6      A  1.000000  0.000000  2.000000  1.000000  1.000000  2.000000
如果你需要','

pd.concat([df.groupby(['day'])['pid'].apply(lambda x: "%s" % ','.join(x)),df.groupby(['day']).mean()],axis=1)

Out[300]: 
       pid    wscore    lscore        wk        wd        lk        ld
day                                                                   
1      A,B  1.000000  0.000000  1.500000  0.500000  0.500000  1.500000
2      B,C  2.000000  1.500000  2.000000  1.000000  1.000000  1.500000
3        C  1.000000  2.000000  2.000000  1.000000  2.000000  2.000000
4      A,B  2.000000  1.000000  1.500000  1.000000  1.500000  1.000000
5    A,B,C  1.666667  1.333333  1.666667  0.666667  0.666667  1.333333
6        A  1.000000  0.000000  2.000000  1.000000  1.000000  2.000000
如果在
pid

 pd.concat([df.groupby(['day'])['pid'].sum(),df.groupby(['day']).mean()],axis=1)
Out[297]: 
     pid    wscore    lscore        wk        wd        lk        ld
day                                                                 
1     AB  1.000000  0.000000  1.500000  0.500000  0.500000  1.500000
2     BC  2.000000  1.500000  2.000000  1.000000  1.000000  1.500000
3      C  1.000000  2.000000  2.000000  1.000000  2.000000  2.000000
4     AB  2.000000  1.000000  1.500000  1.000000  1.500000  1.000000
5    ABC  1.666667  1.333333  1.666667  0.666667  0.666667  1.333333
6      A  1.000000  0.000000  2.000000  1.000000  1.000000  2.000000
如果你需要','

pd.concat([df.groupby(['day'])['pid'].apply(lambda x: "%s" % ','.join(x)),df.groupby(['day']).mean()],axis=1)

Out[300]: 
       pid    wscore    lscore        wk        wd        lk        ld
day                                                                   
1      A,B  1.000000  0.000000  1.500000  0.500000  0.500000  1.500000
2      B,C  2.000000  1.500000  2.000000  1.000000  1.000000  1.500000
3        C  1.000000  2.000000  2.000000  1.000000  2.000000  2.000000
4      A,B  2.000000  1.000000  1.500000  1.000000  1.500000  1.000000
5    A,B,C  1.666667  1.333333  1.666667  0.666667  0.666667  1.333333
6        A  1.000000  0.000000  2.000000  1.000000  1.000000  2.000000

您可能想导入文件,然后加入数据帧您可能想导入文件,然后加入
df=pd.concat([A,B,C],axis=0)
这里A,B,C是否定义了csv文件名或“pid”字符串?我添加了一个关于A,B,CI的小说明,有这个代码,()但是它在屏幕截图中给了我以下错误,你有什么解决方案吗?将int改为str
df.id.astype(str)
非常感谢,它可以工作。最后一件事,如果我在A.csv、B.csv、C.csv上再添加两列,假设名称为“win”,并且所有行上的数据为TRUE/FALSE,“place”和数据为string。。我可以用什么方式将3个CSV合并在一起?我尝试使用上面的代码,它不会在输出中显示两个新列。在
df=pd.concat([A,B,C],axis=0)
A,B,C在这里定义csv文件名还是“pid”字符串?我添加了一个关于A,B,CI的小说明,有这个代码,(),但它在屏幕截图中给出了以下错误,您有什么解决方案吗?将int改为str
df.id.astype(str)
非常感谢,它可以工作。最后一件事,如果我在A.csv、B.csv、C.csv上再添加两列,假设名称为“win”,并且所有行上的数据为TRUE/FALSE,“place”和数据为string。。我可以用什么方式将3个CSV合并在一起?我尝试使用上面的代码,它不会在输出中同时显示两个新列。
pd.concat([df.groupby(['day'])['pid'].apply(lambda x: "%s" % ','.join(x)),df.groupby(['day']).mean()],axis=1)

Out[300]: 
       pid    wscore    lscore        wk        wd        lk        ld
day                                                                   
1      A,B  1.000000  0.000000  1.500000  0.500000  0.500000  1.500000
2      B,C  2.000000  1.500000  2.000000  1.000000  1.000000  1.500000
3        C  1.000000  2.000000  2.000000  1.000000  2.000000  2.000000
4      A,B  2.000000  1.000000  1.500000  1.000000  1.500000  1.000000
5    A,B,C  1.666667  1.333333  1.666667  0.666667  0.666667  1.333333
6        A  1.000000  0.000000  2.000000  1.000000  1.000000  2.000000