1
我想通過DF1和DF2的重命名(和代碼)運行dataframes的列表。這可以通過def ....等,或任何其他方法來完成嗎?創建和重命名dataframes動態
df = pd.DataFrame({
'A': ['d','d','d','d','d','d','g','g','g','g','g','g','k','k','k','k','k','k'],
'B': [5,5,6,4,5,6,-6,7,7,6,-7,7,-8,7,-6,6,-7,50],
'C': [1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2],
'S': [2012,2013,2014,2015,2016,2012,2012,2014,2015,2016,2012,2013,2012,2013,2014,2015,2016,2014]
});
df = (df.B + df.C).groupby([df.A, df.S]).agg(['sum','size']).unstack(fill_value=0)
df1 = df.groupby(level=0, axis=1).sum()
new_cols= list(zip(df1.columns.get_level_values(0),['total'] * len(df.columns)))
df1.columns = pd.MultiIndex.from_tuples(new_cols)
df2 = pd.concat([df1,df], axis=1).sort_index(axis=1).sort_index(axis=1, level=1)
df2.columns = ['_'.join((col[0], str(col[1]))) for col in df2.columns]
df2.columns = df2.columns.str.replace('sum_','')
df2.columns = df2.columns.str.replace('size_','T')
喜jezrael,謝謝。其中一個問題是,我接受的DF的名稱會保持原樣嗎? – Zanshin
如果'DataFrames',您可以通過像'DFS [0]位置選擇dataframes使用清單'是第一個數據幀,'DF [1]'是第二... dataframes的名單是非常好的,如果需要CONCAT所有dataframes在一起,然後只使用''df = pd.concat(dfs)' – jezrael
好的,謝謝。但如果我不想,這個名字是否保持不變? – Zanshin