Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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 如何在DataFrame中保存groupby对象_Python_Python 3.x_Pandas_Group By_Pandas Groupby - Fatal编程技术网

Python 如何在DataFrame中保存groupby对象

Python 如何在DataFrame中保存groupby对象,python,python-3.x,pandas,group-by,pandas-groupby,Python,Python 3.x,Pandas,Group By,Pandas Groupby,我有以下数据帧: Name ID Month Shift Jon 1 Feb A Jon 1 Jan B Jon 1 Mar C Mike 1 Jan A Mike 1 Jan B Jon 1 Feb C Jon 1 Jan A 我想把下面的数据作为groupby,但我不能这样做。请帮帮我 df.groupby(['Name','ID','Shi

我有以下数据帧:

Name    ID  Month   Shift 
Jon     1   Feb     A
Jon     1   Jan     B
Jon     1   Mar     C
Mike    1   Jan     A
Mike    1   Jan     B
Jon     1   Feb     C
Jon     1   Jan     A
我想把下面的数据作为groupby,但我不能这样做。请帮帮我

df.groupby(['Name','ID','Shift']).
这行吗

df = pd.DataFrame(
    data=[['Jon', 1, 'Feb', 'A'],
          ['Jon', 1, 'Jan', 'B'],
          ['Jon', 1, 'Mar', 'C'],
          ['Mike', 1, 'Jan', 'A'],
          ['Mike', 1, 'Jan', 'B'],
          ['Jon', 1, 'Feb', 'C'],
          ['Jon', 1, 'Jan', 'A']],
    columns=['Name', 'ID', 'Month', 'Shift']
)

empty_rows = pd.DataFrame(
    data=[[name, '', '', ''] for name in df['Name'].unique()],
    columns=list(df)
)
df = pd.concat([df, empty_rows])

# this will need to be extended if you have additional months
df['Month'] = pd.Categorical(df['Month'], ['', 'Jan', 'Feb', 'Mar'])
df = df.set_index(['Name','Month']).sort_values(['Name', 'Month'])
在excel文件中读取:

df = pd.read_excel(
    r'C:\Users\dell\Desktop\stats.xlsx',
    sheet_name='Sheet5', 
    usecols=['Name', 'ID', 'Month', 'Shift']
)
这行吗

df = pd.DataFrame(
    data=[['Jon', 1, 'Feb', 'A'],
          ['Jon', 1, 'Jan', 'B'],
          ['Jon', 1, 'Mar', 'C'],
          ['Mike', 1, 'Jan', 'A'],
          ['Mike', 1, 'Jan', 'B'],
          ['Jon', 1, 'Feb', 'C'],
          ['Jon', 1, 'Jan', 'A']],
    columns=['Name', 'ID', 'Month', 'Shift']
)

empty_rows = pd.DataFrame(
    data=[[name, '', '', ''] for name in df['Name'].unique()],
    columns=list(df)
)
df = pd.concat([df, empty_rows])

# this will need to be extended if you have additional months
df['Month'] = pd.Categorical(df['Month'], ['', 'Jan', 'Feb', 'Mar'])
df = df.set_index(['Name','Month']).sort_values(['Name', 'Month'])
在excel文件中读取:

df = pd.read_excel(
    r'C:\Users\dell\Desktop\stats.xlsx',
    sheet_name='Sheet5', 
    usecols=['Name', 'ID', 'Month', 'Shift']
)

非常相似。非常相似。但是我们可以每月也排序吗?从2月份开始。我想同意Format,也就是我在我的查询中显示为oputputI的名称下面的一行。我已经更新了我的答案,包括空行和monthwow Kait排序。。你太棒了。。是的,它工作得很好,但有一点值得怀疑。因为每个月的数据都会增加。我的意思是这个月也会是4月的4月和5月的5月,依此类推到12月。所以可以使用下面的代码df['Month']=pd.Categorical(df['Month'],['''Jan','Feb','Mar','Apr','May','Jun','jul','Aug','sep','oct','Nov','Dec'])。。因此,当我们有数据时,我们的数据框架中的数据将相应地工作。
df.index=df.index.map(lambda x:x[0]如果x[1]=''else x[1])
df.rename\u axis('Name')
您可能会发现这很有帮助:但是我们可以每月进行排序吗?从2月份开始。我想同意Format,也就是我在我的查询中显示为oputputI的名称下面的一行。我已经更新了我的答案,包括空行和monthwow Kait排序。。你太棒了。。是的,它工作得很好,但有一点值得怀疑。因为每个月的数据都会增加。我的意思是这个月也会是4月的4月和5月的5月,依此类推到12月。所以可以使用下面的代码df['Month']=pd.Categorical(df['Month'],['''Jan','Feb','Mar','Apr','May','Jun','jul','Aug','sep','oct','Nov','Dec'])。。因此,当我们有数据时,我们的数据框中的数据将相应地工作。
df.index=df.index.map(lambda x:x[0]如果x[1]=''else x[1])
df.rename\u axis('Name')
您可能会发现这很有帮助: