首页 文章

将groupby列作为Python Pandas中的新数据帧返回

提问于
浏览
0

输入:包含5列的CSV .

预期输出:'col1','col2','col3'的独特组合 .

Sample Input:

col1 col2 col3 col4 col5 

0   A    B    C    11   30

1   A    B    C    52   10

2   B    C    A    15   14 

3   B    C    A     1   91

Sample Expected Output:

col1 col2 col3

A     B     C

B     C     A

只是期待这个作为输出 . 输出中我不需要col4和col5 . 并且也不需要任何总和,计数,意味着等 . 尝试使用熊猫来实现这一点,但没有运气 .

My code:

input_df = pd.read_csv("input.csv");

output_df = input_df.groupby(['col1', 'col2', 'col3'])

此代码返回'pandas.core.groupby.DataFrameGroupBy对象0x0000000009134278' . 但我需要像上面那样的数据帧 . 任何帮助非常感谢 .

2 回答

  • 0
    df[['col1', 'col2', 'col3']].drop_duplicates()
    
  • 3

    首先,你可以使用 .drop() 删除 col4col5 ,因为你说你不需要它们 .

    df = df.drop(['col4', 'col5'], axis=1)
    

    然后,您可以使用 .drop_duplicates() 删除 col1col2col3 中的重复 rows .

    df = df.drop_duplicates(['col1', 'col2', 'col3'])
    df
    

    输出:

    col1    col2    col3
    0   A   B   C
    2   B   C   A
    

    您注意到在输出中索引是 0, 2 而不是 0,1 . 要解决这个问题,你可以这样做:

    df.index = range(len(df))
    df
    

    输出:

    col1    col2    col3
    0   A   B   C
    1   B   C   A
    

相关问题