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

时间:2016-05-24 00:07:45

标签: python pandas dataframe

输入:包含5列的CSV。

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

示例输入:

   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 

预期输出示例:

col1 col2 col3

A     B     C

B     C     A

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

我的代码:

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

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

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

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

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