我有一个dataframe,它是通过执行groupby操作从另一个dataframe生成的,使用一个来自原始df的列和另一个从原始df的列再次生成的真/假向量。下面的代码应该复制这个
import pandas as pd
import numpy as np
df=pd.DataFrame({'group1': list('AABBCCAABBCC'),'group2':list('ZYYXYXXYZXYZ'),'group3':list('MMMNNNOOOMNO'),'group4':list('EFGGFEEFGGFE')})
df['check_for_A']=df['group1']=='A' #True/False vector
truth_table=df.groupby(['group1','check_for_A']).group2.count().unstack().fillna(0)
truth_table['random_values']=np.random.rand(3)
输出如下所示
^{pr2}$我的问题是,虽然我可以通过键入truth_table['random_values']
来访问列随机值,但我似乎无法访问True
或{truth_table['True']
给出一个错误,抱怨名称True
。False
也会发生同样的情况。我不知道为什么。在
我想问题出在真/假名字上,因为如果我这样做
truth_table=df.groupby(['group1','group2']).group2.count().unstack().fillna(0)
列名是x
、y
和{
如果有人能解释这一行为并提出其他解决方案,我将不胜感激。我正在考虑更改列名,但我想找出我遗漏了什么。在
您可以使用不带引号的}访问数据。如果你这么做的话,这一点就可以看出来了
truth_table[True]
和{这种行为是因为
df['check_for_A']
中的值是布尔值而不是字符串。在相关问题 更多 >
编程相关推荐