相关疑难解决方法(0)

pandas groupby-apply行为,返回一个Series(不一致的输出类型)

当apply函数返回一个系列时,我很好奇pandas groupby-apply的行为.

当系列具有不同的长度时,它返回一个多索引系列.

In [1]: import pandas as pd

In [2]: df1=pd.DataFrame({'state':list("AABBB"),
   ...:                 'city':list("vwxyz")})

In [3]: df1
Out[3]:
  city state
0    v     A
1    w     A
2    x     B
3    y     B
4    z     B

In [4]: def f(x):
   ...:         return pd.Series(x['city'].values,index=range(len(x)))
   ...:

In [5]: df1.groupby('state').apply(f)
Out[5]:
state
A      0    v
       1    w
B      0    x
       1    y
       2    z
dtype: object
Run Code Online (Sandbox Code Playgroud)

这返回一个Series对象.

但是,如果每个系列都具有相同的长度,那么它将其转换为a DataFrame.

In [6]: df2=pd.DataFrame({'state':list("AAABBB"),
   ...:                 'city':list("uvwxyz")})

In [7]: df2
Out[7]:
  city state
0 …
Run Code Online (Sandbox Code Playgroud)

python pandas

14
推荐指数
2
解决办法
6591
查看次数

标签 统计

pandas ×1

python ×1