我对csv文件有如下要求:
colA colB NewCol
1 val1 val1
1 val2 val1 + val2
1 val3 val1 + val2 + val3
2 val4 val4
2 val5 val4 + val5
2 val6 val4 + val5 + val6
3 val7 val7
3 val8 val7 + val8
3 val9 val7 + val8 + val9
我想向df添加一个新列,这样它就可以为相同的ID值添加连续的colB值。列B可以是整数或字符串。你知道吗
Tags:
使用
groupby
+cumsum
:对于字符串求和,可以使用带有
groupby
的列表理解:解释
for _, g in df.groupby(...)[...]
迭代groupby
元素。这里我们忽略索引_
,因为我们只对值感兴趣。你知道吗range(len(g.index))
,即迭代组中的项目数。你知道吗i
值应用''.join
。我们使用g.iloc[:i+1]
来提取组中的第一个i
值。你知道吗使用^{} 或
pd.Series.cumsum
可以完美地处理数字和字符串:或:
相关问题 更多 >
编程相关推荐