我有一个包含大量列的数据集,这些列包含多个值(从googleforms导入,这些列允许多个选择)。我最初是以列表的形式导入的。在
现在我想根据这些列中的一些值来分析数据,即
df = pd.DataFrame(dict(a=[(1,2),(2,3),(1,)], b=[(1,3),(2,5),], c=['a','b','c']))
a b c
0 (1, 2) (1, 3) a
1 (2, 3) (2, 5) b
2 (1) () c
我想绘制一个条形图,其中X是列a和b的不同值(它们共享同一组选项),Y是具有选项的行总数:
![](https://i.stack.imgur.com/KPwVa.png)
Tags:
我们可以使用布尔索引来筛选列
'a'
中没有2
的记录。在您可以通过对列求和(基本上是连接内容)然后对它们调用
pd.value_counts
来实现这一点。例如(稍微修改数据帧定义,使其不会引发错误):(先前对问题原文的答复):
您可以使用一个映射获得
^{pr2}$2
所在的所有行您可以使用
^{3}$groupby
后跟filter
来完成类似的操作,不过首先必须将a
值转换为元组,以便它们是散列的(并且可以是组键):一旦得到了这些结果中的任何一个,就可以使用,例如
result['a'] = 2
来替换a
列中的值。在相关问题 更多 >
编程相关推荐