我有一个数据帧,它是通过使用原始df中的一列执行groupby操作而从另一个数据帧生成的,另一个是从原始df列再次生成的真/假向量。以下代码应该重现
check_for_A False True random_values
group1
A 0 4 0.917167
B 4 0 0.965026
C 4 0 0.046257
输出看起来像这样
truth_table['random_values']
我的问题是,只需输入True
即可访问列random_values,我似乎无法访问False
或truth_table['True']
列。命令True
发出错误,抱怨名称False
。 truth_table=df.groupby(['group1','group2']).group2.count().unstack().fillna(0)
也发生了同样的事情。我不知道为什么。
我认为问题是使用True / False名称,因为如果我做这样的事情
x
列名称为y
,z
和{{1}},我在访问时没有任何问题。
如果有人能解释这种行为并提出替代解决方案,我将不胜感激。我正在考虑更改列名,但是想要在这里找到我仍然缺少的内容。
答案 0 :(得分:2)
您可以使用truth_table[True]
和truth_table[False]
访问您的数据而不使用引号。如果你这样做可以看到
print truth_table.columns
# Index([False, True, u'random_values'], dtype='object', name=u'check_for_A')
这种行为来自于df['check_for_A']
中的值是布尔值而不是字符串。