如何使用 Pandas Groupby 将 Dataframe 行转换为分组列表
问题:
给定具有多列的 DataFrame,目标是根据特定列对行进行分组(例如,第一列)并将来自另一列(例如,第二列)的值收集到每个组内的列表中。例如:
原始 DataFrame:
a | b |
---|---|
A | 1 |
A | 2 |
B | 5 |
B | 5 |
B | 4 |
C | 6 |
期望结果:
a | new |
---|---|
A | [1, 2] |
B | [5, 5, 4] |
C | [6] |
解决方案:
实现此目的结果,pandas 的 groupby 函数可以与 apply() 方法一起使用,将每个组转换为
import pandas as pd # Create a DataFrame df = pd.DataFrame({'a': ['A', 'A', 'B', 'B', 'B', 'C'], 'b': [1, 2, 5, 5, 4, 6]}) # Group by the "a" column and create lists of "b" values grouped_list = df.groupby('a')['b'].apply(list) # Reset the index to obtain a DataFrame df1 = grouped_list.reset_index(name='new')
说明:
生成的 DataFrame df1 将包含所需的分组列表:
a new 0 A [1, 2] 1 B [5, 5, 4] 2 C [6]
以上是如何使用 Pandas 对 DataFrame 行进行分组并创建值列表?的详细内容。更多信息请关注PHP中文网其他相关文章!