spl*_*ter 1 python list series dataframe pandas
我正在处理pd.Series每个条目都是列表的位置.我想找到该系列的模式,即本系列中最常见的列表.我尝试过使用pandas.Series.value_counts和pandas.Series.mode.但是,这两种方法都会导致以下异常:
TypeError:不可用类型:'list'
这是一个这样一个系列的简单例子:
pd.Series([[1,2,3], [4,5,6], [1,2,3]])
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个将返回的功能[1,2,3].
您需要转换为tuple,然后使用mode
pd.Series([[1,2,3], [4,5,6], [1,2,3]]).apply(tuple).mode().apply(list)
Out[192]:
0 [1, 2, 3]
dtype: object
Run Code Online (Sandbox Code Playgroud)
略有改进:
list(pd.Series([[1,2,3], [4,5,6], [1,2,3]]).apply(tuple).mode().iloc[0])
Out[210]: [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
因为两个申请是丑陋的
s=pd.Series([[1,2,3], [4,5,6], [1,2,3]])
s[s.astype(str)==s.astype(str).mode()[0]].iloc[0]
Out[205]: [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)