我对数据框列表做了一些计算。我想要结果dataframe使用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
df.index返回
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句