Python从groupby生成的数据框中访问名为“True”或“False”的列

时间:2016-02-20 07:59:55

标签: python pandas group-by dataframe

我有一个数据帧,它是通过使用原始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,我似乎无法访问Falsetruth_table['True']列。命令True发出错误,抱怨名称Falsetruth_table=df.groupby(['group1','group2']).group2.count().unstack().fillna(0) 也发生了同样的事情。我不知道为什么。

我认为问题是使用True / False名称,因为如果我做这样的事情

x

列名称为yz和{{1}},我在访问时没有任何问题。

如果有人能解释这种行为并提出替代解决方案,我将不胜感激。我正在考虑更改列名,但是想要在这里找到我仍然缺少的内容。

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']中的值是布尔值而不是字符串。