Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何获取已分组的df的特定属性_Python 3.x_Pandas - Fatal编程技术网

Python 3.x 如何获取已分组的df的特定属性

Python 3.x 如何获取已分组的df的特定属性,python-3.x,pandas,Python 3.x,Pandas,我正在打印每个州每十年的谋杀频率。然而,我只想打印国家,十年,以及受害者人数。我现在看到的是,它正在打印出所有频率相同的列。我如何改变它,使我只有3列,州,十年,和受害者计数 我目前正在使用groupby函数按状态和十年进行分组,并将其设置为一个名为count的变量 xl = pd.ExcelFile('Wyoming.xlsx') df = xl.parse('Sheet1') df['Decade'] = (df['Year'] // 10) * 10 counts =

我正在打印每个州每十年的谋杀频率。然而,我只想打印国家,十年,以及受害者人数。我现在看到的是,它正在打印出所有频率相同的列。我如何改变它,使我只有3列,州,十年,和受害者计数

我目前正在使用groupby函数按状态和十年进行分组,并将其设置为一个名为count的变量

  xl = pd.ExcelFile('Wyoming.xlsx')
  df = xl.parse('Sheet1')

  df['Decade'] = (df['Year'] // 10) * 10

  counts = df.groupby(['State', 'Decade']).count()

  print(counts)
结果是以相同的频率打印出文件中的所有列,而我只需要3列:State Decade牺牲品计数


选择所需的列:

counts = df.loc[:,['State', 'Decade','Vistim Count']].groupby(['State', 'Decade']).count()


您应该重置groupby对象的索引,然后从新数据框中选择列

差不多

xl = pd.ExcelFile('Wyoming.xlsx')
df = xl.parse('Sheet1')

df['Decade'] = (df['Year'] // 10) * 10

counts = df.groupby(['State', 'Decade']).count()
counts = counts.reset_index()[['State', 'Decade','Vistim Count']]
print(counts)

@你自己真棒。考虑支持/接受抱歉,我没有超过15的声誉来做这件事,因为我是一个比较新的堆栈溢出用户。如果你还有其他问题,请点击按钮,而不是编辑你当前的帖子。抱歉。不知道
xl = pd.ExcelFile('Wyoming.xlsx')
df = xl.parse('Sheet1')

df['Decade'] = (df['Year'] // 10) * 10

counts = df.groupby(['State', 'Decade']).count()
counts = counts.reset_index()[['State', 'Decade','Vistim Count']]
print(counts)