我有一个名为“player_traits”的列,它由列表组成,我希望能够使用Counter
找到元素的计数。我找到了一种方法来flatten the lists并对它们进行计数,但当我试图将其展平时,我得到了一个TypeError: 'float' object is not iterable
我已经检查了列实例的type(),并验证了它们是列表,所以我不确定为什么会出现错误,说float对象不可iterable
以下是该列的一个示例:
df['player_traits']:
0 [Finesse Shot, Speed Dribbler, One Club Play]
1 [Diver, Beat Offside Trap, Selfish, Flair]
2 [Diver, Flair, Technical Dribbler]
这是我的代码(在我的Jupyter笔记本中),它产生了错误:
trait_series = df['player_traits']
flat_list = pd.Series([item for sublist in trait_series for item in sublist])
Counter(flat_list)
我还检查了一下,以确保trait_series
也是一个系列,而且是。出什么事了?有没有其他方法可以展平列表并计算元素
编辑:我在更新Python版本时遇到了问题。有没有一种方法可以不使用.explode()将列表展平
已解决:我没有使用.explode(),而是找到了一些可以通过过滤掉空值来平展列表的代码:
non_nan_df = df[df['player_traits'].isnull() == False]
player_traits = np.array([item for lst in
non_nan_df['player_traits'].values for item in lst])
Counter(player_traits)
目前没有回答
相关问题 更多 >
编程相关推荐