谢邀
答案是完全可以,除此之外,pandas还提供各种复杂的表格数据操作,我们看看下面的例子
pandas
pandas官网:
https://pandas.pydata.org/
Pandas是一个强大的分析结构化数据
下面是我的实现过程,使用df.groupby().apply(func)的方式实现的。
df
Out[65]:
name Age Height Score State
0 Jane 30 165 4.6 NY
1 Nick 20 70 8.3 TX
2 Aaron 22 120 9.0 FL
3 Penelope 40 80 3.3 AL
4 Jaane 20 162 4.0 NY
5 Nicky 30 72 8.0 TX
6 Armour 20 124 9.0 FL
7 Ponting 25 81 3.0 AL
def func(x):
return x[x.Age==20].Age.count(), x[x.Age==30].Age.count()
df.groupby(by=['State']).apply(func)
Out[64]:
State
AL (0, 0)
FL (1, 0)
NY (1, 1)
TX (1, 1)
dtype: object
本来想分别返回Age==20 和 Age==30 的人数,返回两个字段的,但是现在只是返回了一个字段,字段值是一个tuple,没有展开成两个字段
找到答案了,apply的函数返回一个Series就行了
def func(x):
return pd.Series({'Age_20': x[x.Age==20].Age.count(), 'Age_30': x[x.Age==30].Age.count()})
df.groupby(by=['State']).apply(func)
Out[71]:
Age_20 Age_30
State
AL 0 0
FL 1 0
NY 1 1
TX 1 1