我的数据框的某些列包含元组。每当我通过group by进行聚合时,除非明确指定,否则列不会出现在结果数据框中。
例子,
df = pd.DataFrame()
df['A'] = [1, 2, 1, 2]
df['B'] = [1, 2, 3, 4]
df['C'] = map(lambda s: (s,), df['B'])
print df
A B C
0 1 1 (1,)
1 2 2 (2,)
2 1 3 (3,)
3 2 4 (4,)
如果我按照以下方式进行操作,则该列C
不会出现在汇总中
print df.groupby('A').sum()
B
A
1 4
2 6
但是,如果我明确指定它,它将按预期显示
print df[['A', 'C']].groupby('A').sum()
C
A
1 (1, 3)
2 (2, 4)
您能告诉我为什么C
在第一种情况下没有出现该列吗?
我希望它默认运行。
因为您按columnB
而不是column进行聚合C
:
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['A'] = [1, 2, 1, 2]
df['B'] = [1, 2, 3, 4]
df['C'] = map(lambda s: (s,), df['B'])
print df
df.at[0,'B'] = 10
print df
A B C
0 1 10 (1,)
1 2 2 (2,)
2 1 3 (3,)
3 2 4 (4,)
print df.groupby('A').sum()
B
A
1 13
2 6
print df.groupby('A')['B'].sum()
1 13
2 6
Name: B, dtype: int64
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句