Pandas 设置聚合数据帧的索引

Pandas 设置聚合数据帧的索引,pandas,Pandas,我对数据帧列表做了一些计算。我希望结果数据帧使用rangeindex。但是,它使用一个列名作为索引,即使我设置了index=None d1 = {'id': [1, 2, 3, 4, 5], 'is_free': [True, False, False, True, True], 'level': ['Top', 'Mid', 'Top', 'Top', 'Low']} d2 = {'id': [1, 3, 4, 5, 7], 'is_free': [True, True, False, Fal

我对数据帧列表做了一些计算。我希望结果数据帧使用
rangeindex
。但是,它使用一个列名作为索引,即使我设置了
index=None

d1 = {'id': [1, 2, 3, 4, 5], 'is_free': [True, False, False, True, True], 'level': ['Top', 'Mid', 'Top', 'Top', 'Low']}
d2 = {'id': [1, 3, 4, 5, 7], 'is_free': [True, True, False, False, False], 'level': ['Top', 'High', 'Top', 'Top', 'Low']}
d1 = pd.DataFrame(data=d1)
d2 = pd.DataFrame(data=d2)
df_list = [d1, d2]

dfs = []
for i, df in enumerate(df_list):
    df = df.groupby('is_free')['id'].count()
    dfs.append(df)
    df = pd.DataFrame(data=dfs, index=None)
它回来了

is_free False   True
id      2       3
id      3       2
指数回报率

Index(['id', 'id'], dtype='object')
从您的代码:

 df = pd.DataFrame(data=dfs, index=None).reset_index(drop=True)
但是,一般来说,我会避免迭代地追加
append
。请尝试使用concat:

pd.concat({i:d.groupby('is_free')['id'].count() 
           for i,d in enumerate(df_list)}, 
          axis=1).T
或者使用
pd.DataFrame

pd.DataFrame({i:d.groupby('is_free')['id'].count() 
           for i,d in enumerate(df_list)}).T
输出:

is_free  False  True 
0            2      3
1            3      2