在Pandas数据帧单元中找到[a Python list]匹配值的总和?

2024-09-25 18:20:35 发布

您现在位置:Python中文网/ 问答频道 /正文

底线问题:

这很难看,对吧?对于熊猫数据帧:

{>

长版本:我试图找到Pandas数据帧中“空”值的总和。空是指当条目为[0]——一个列表时。在

我想最好的解决方案是不使用list[0]作为数据帧单元中的值。假设我坚持这样做,我想了解为什么有那么多函数不起作用,给出一个“unhable list”错误?在

是的,这是一个数据科学课的家庭作业。我们抓取了一个展示酒吧和欢乐时光的网页。我建立了这个数据帧,我使用的是小时列表,其中列表中的最后一个条目是快乐时光结束时。忽略数据中的几个错误: DataFrame of happy hours by day of week

我开始相信,在数据帧中存储列表并不是最好的主意,因为我希望使用的许多函数都告诉我,它们不能散列为list:

In [173]: happyBarFrame['Sunday'].value_counts()

。。。正在跳过长错误。。。在

TypeError: unhashable type: 'list'

问题是:我尝试了以下方法,其中包括许多其他方法。按天计算列表中只有单个0(单元格值=[0])的单元格的最佳方法是什么?

happyBarFrame[happyBarFrame['Sunday'].isin([[0]])]——不起作用 happyBarFrame[happyBarFrame['Sunday'].isin([0])]——不起作用

两者都给出TypeError: unhashable type: 'list'


happyBarFrame['Sunday'].apply(lambda x : x == [0]).value_counts()[0]

确实有用,但只是感觉不对!我可以迭代一周中的几天,逐日获取计数,然后构建我需要构建的直方图。但是一定有更好的方法,这看起来真的很低效,是吗?在

编辑:修正了一个错误,即需要在值\u counts[0]中计算True,而不是False


Tags: 数据方法函数列表valuetype错误条目
1条回答
网友
1楼 · 发布于 2024-09-25 18:20:35

如果只想对数据帧中的每个单元格应用函数,可以使用applymap;然后要获得列和,只需调用sum

df = pd.DataFrame({"Sunday": [[0],[0,1]], "Monday": [[0],[0]]})
df.applymap(lambda x: x == [0]).sum()

Monday    2
Sunday    1
dtype: int64

相关问题 更多 >