我有一个看起来像这样的数据框:
index name value
1 Foo 9
2 Bar 11
3 Foo 2
4 Bar 4
5 Foo,Bar 3
Run Code Online (Sandbox Code Playgroud)
如果df.groupby('name').count()我知道了:
value
name
Foo 2
Bar 2
Foo,Bar 1
Run Code Online (Sandbox Code Playgroud)
我想拆分Foo,Bar并在结果元组中存在的索引中的每个值加1,以使分组的数据框看起来像:
value
name
Foo 3
Bar 3
Run Code Online (Sandbox Code Playgroud)
我可以想到使用for循环执行此操作的方法,但我想知道是否存在一些内置的熊猫方法来解决此类问题。
对于大熊猫0.25+使用Series.str.split与Series.explode对flatten Series,那么对于数Series.value_counts以Series.to_frame:
df1 = df['name'].str.split(',').explode().value_counts().to_frame('value')
print (df1)
value
Foo 3
Bar 3
Run Code Online (Sandbox Code Playgroud)
对于另一个版本使用split与expand=True用于DataFrame和DataFrame.stack为flatten Series:
df1 = df['name'].str.split(',', expand=True).stack().value_counts().to_frame('value')
print (df1)
value
Foo 3
Bar 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |