【发布时间】:2015-10-29 15:20:21
【问题描述】:
我有一个数据框,其中一些值被分成不同的列:
ch1a ch1b ch1c ch2
0 0 4 10
0 0 5 9
0 6 0 8
0 7 0 7
8 0 0 6
9 0 0 5
我想对这些列求和并保留正常的列(如ch2)。
想要的结果应该是这样的:
ch1a ch2
4 10
5 9
6 8
7 7
8 6
9 5
我查看了两个 pandas 函数,merge 和 join,但我找不到适合我的情况的函数。
这是我的第一次尝试:
df = pd.DataFrame({'ch1a': [0, 0, 0, 0, 8, 9],'ch1b': [0, 0, 6, 7, 0, 0],'ch1c': [4, 5, 0, 0, 0, 0],'ch2': [10, 9, 8, 7, 6, 5]})
df['ch1a'] = df.sum(axis=1)
del df['ch1b']
del df['ch1c']
然而结果不是我想要的:
ch1a ch2
0 14 10
1 14 9
2 14 8
3 14 7
4 14 6
5 14 5
我有两个问题:
- 我怎样才能得到我想要的结果?
- 有没有办法通过对某些列的值求和来合并某些列,而不必在之后删除剩余的列?
【问题讨论】:
-
为什么要ch1a、ch1b和ch1c变成ch1a?变成ch1不是更自然吗?
-
好的,ch1,没关系:)
-
这就是我在回答中所做的;)
标签: python join pandas merge dataframe