循环遍历pandas数据帧中的行,并对列条件进行更新检查


A
Row_Number 列A 列B
1 数据1
2 数据A
3 数据B
4 数据2 B
5 数据C
6 数据D
7 数据E
8 数据3 C

您可以在此处执行groupby。最简单的方法是只使用Column B,因为它已经对应于要分组的行。因此,给定这些数据:

import pandas as pd
df = pd.DataFrame({'ColumnA': ['Data1', 'DataA', 'DataB',
'Data2', 'DataC', 'DataD', 'DataE',
'Data3'],
'ColumnB': ['A', None, None,
'B', None, None, None,
'C']})
#  ColumnA ColumnB
# 0   Data1       A
# 1   DataA    None
# 2   DataB    None
# 3   Data2       B
# 4   DataC    None
# 5   DataD    None
# 6   DataE    None
# 7   Data3       C

通过填充缺失的值来创建要分组的内容:

grouper = df['ColumnB'].ffill()
# 0    A
# 1    A
# 2    A
# 3    B
# 4    B
# 5    B
# 6    B
# 7    C
# Name: ColumnB, dtype: object

然后聚合到concat字符串,如下所示:

output = df['ColumnA'].groupby(grouper).apply(lambda x : ', '.join(x)).reset_index()

最终结果:

ColumnB                     ColumnA
0       A         Data1, DataA, DataB
1       B  Data2, DataC, DataD, DataE
2       C                       Data3

相关内容

  • 没有找到相关文章

最新更新