读取了一个 csv 文件,是个矩阵,想求每行的和,第一行和第一列怎么排除呢。

2020-11-30 19:28:37 +08:00
 kangjinwen

demo 数据 one two three
a 1 5 9
b 2 6 10
c 3 7 11
d 4 8 12

、、、代码如下

df['row_sum']=df.apply(lambda x: x.sum(),axis=1)

print(df)

我的数据是这样的, 用上面的代码提示: return umr_sum(a, axis, dtype, out, keepdims, initial, where) TypeError: can only concatenate str (not "int") to str

求教,我的这种数据怎么求和呢。

2193 次点击
所在节点    Python
13 条回复
kangjinwen
2020-11-30 19:33:46 +08:00
jimmyismagic
2020-11-30 19:36:47 +08:00
你的 df 是怎么生成的
kangjinwen
2020-11-30 19:38:47 +08:00
@jimmyismagic
df=pd.read_csv(r'D:\1.csv')
df["总和"] =df.apply(lambda x: x.sum(),axis=1)
df.to_csv(r'D:\2.csv',index=False)
是这样读取的 csv
kangjinwen
2020-11-30 19:39:40 +08:00
网上 demo 运行后是这样的
df['row_sum']=df.apply(lambda x: x.sum(),axis=1)

print(df)
one two three row_sum
a 1 5 9 15
b 2 6 10 18
c 3 7 11 21
d 4 8 12 24
jimmyismagic
2020-11-30 19:49:52 +08:00
@kangjinwen
pd.read_csv(path,index_col=0,header=0)
这样做
yucongo
2020-11-30 19:57:13 +08:00
pd.read_csv(r"file.csv").astype(float).sum(axis=1)
kangjinwen
2020-12-01 10:13:28 +08:00
@jimmyismagic 谢谢大佬。就是这样的。。万分感谢!!!
kangjinwen
2020-12-01 12:10:07 +08:00
@jimmyismagic 大佬。又要打扰一下,按您这样操作最后求和是正常的,但是新的 cvs 文件就没有第一列数据了。就 AUS.c01 ,AUS.c02 这些。。。
怎么能保留这一列任然可以求和?
df["总和"] =df.apply(lambda x: x.sum(),axis=1)里可以加什么参数从第二列开始计算吗?
jimmyismagic
2020-12-01 13:47:45 +08:00
@kangjinwen to_csv 的适合 index=True 就好了
TimePPT
2020-12-01 14:28:38 +08:00
@kangjinwen

```python
import pandas as pd


data = {"One": ["a", "b", "c", "d"], "Tow": [1, 2, 3, 4], "Three": [5, 6, 7, 8], "Four":[9, 10, 11, 12]}
df = pd.DataFrame(data=data)
df["sum"] = df.iloc[:, 1:].apply(np.sum, axis=1)
df
```
kangjinwen
2020-12-01 15:24:01 +08:00
@jimmyismagic 我用另外一种本办法解决的。没想到就是这么一个参数。谢谢大佬,祝生活舒心,工作顺心!
jimmyismagic
2020-12-02 10:39:17 +08:00
@kangjinwen 不客气,不用 pandas 好多年了,还记得一点东西
shm7
2020-12-07 18:42:36 +08:00
这种东西搜一下就有了 dataframe.sum(axis=1)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/730712

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX