我有下面的dict,里面有DataFrames作为值。我只想根据dict中的键来转置DataFrame、重置索引和重命名列。这看起来很简单,但转置和重置索引不起作用。
例如,只有当我为结果分配一个变量时,代码才能工作value = value.T.reset_index(inplace=True)
,但这违背了这一点,因为我希望dict中的原始值(它是一个DataFrame)更新。
df_dict = {'volume': vol_df, 'shares': shr_df, 'float': flt_df}
for key, value in df_dict.items():
value.T.reset_index(inplace=True)
value.rename(columns={value.columns[0]: 'bbg_ticker', value.columns[1]: key}, inplace=True)
问题是您正在修改value.T
返回的DataFrame,而不是value
本身。
据我所知,转置是不可能到位的;这可能是因为他们完全重构了DataFrame,而不仅仅是更改数据或标签,同时保持结构基本相同。
将key
处的值设置为新的DataFrame并没有错;我建议这样做:
for key, value in df_dict.items():
value_T = value.T.reset_index()
df_dict[key] = value_T.rename(
columns={value_T.columns[0]: 'bbg_ticker', value_T.columns[1]: key}
)