我需要找到使用现有 DataFrame 创建新 DataFrame 的最佳方法。
请查看此链接以获取完整代码:jdoodle.com/a/xKP 我有这种类型的 DataFrame:
这种方法虽然可行,但其复杂度取决于行列基数,这太昂贵了。 因此,我需要您的帮助找到最佳方法。
请查看此链接以获取完整代码:jdoodle.com/a/xKP 我有这种类型的 DataFrame:
df = pd.DataFrame({'length': [112, 214, 52,88], 'views': [10000, 50000, 25000,5000], 'click': [55, 64, 85,9]},
index = ['id1', 'id2', 'id3','id4'])
click length views
id1 55 112 10000
id2 64 214 50000
id3 85 52 25000
id4 9 88 5000
And need to have this result :
type_stat stat
id1 click 55
id2 click 64
id3 click 85
id4 click 9
id1 length 112
id2 length 214
id3 length 52
id4 length 88
id1 views 10000
id2 views 50000
id3 views 25000
id4 views 5000
目前,我创建了一个返回包含一项统计数据的DataFrame的函数:
def df_by_stat(current_df,stat):
current_df['type_stat'] = stat
current_df['stat'] = current_df[stat].astype(int)
return current_df[['type_stat','stat']]
当我使用以下函数进行.append
操作时:
def final():
return df_by_stat(df,'click').append(
df_by_stat(df,'length')).append(
df_by_stat(df,'views'))
print(final())
这种方法虽然可行,但其复杂度取决于行列基数,这太昂贵了。 因此,我需要您的帮助找到最佳方法。
df.stack().sort_index(level=1)
。 - Bharath M Shetty