Chr*_*les 6 python dataframe pandas
上下文:我想在列顶部添加一个新的多索引/行。例如,如果我有这个数据框:
tt = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})
Run Code Online (Sandbox Code Playgroud)
期望的输出:如何才能将“Table X”添加到 A、B 和 C 列的顶部?
Table X
A B C
0 1 4 7
1 2 5 8
2 3 6 9
Run Code Online (Sandbox Code Playgroud)
可能的解决方案(?):我正在考虑转置数据帧,添加多索引,然后再次转置它,但不确定如何做到这一点,而不必手动编写数据帧列(我已经检查了其他关于这也是)
谢谢你!
同时我也发现了这个解决方案:
tt = pd.concat([tt],keys=['Table X'], axis=1)
Run Code Online (Sandbox Code Playgroud)
这也产生了所需的输出
Table X
A B C
0 1 4 7
1 2 5 8
2 3 6 9
Run Code Online (Sandbox Code Playgroud)
如果你想要一个像你写的那样的数据框,你需要一个Multiindex data frame,试试这个:
import pandas as pd
# you need a nested dict first
dict_nested = {'Table X': {'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]}}
# then you have to reform it
reformed_dict = {}
for outer_key, inner_dict in dict_nested.items():
for inner_key, values in inner_dict.items():
reformed_dict[(outer_key, inner_key)] = values
# last but not least convert it to a multiindex dataframe
multiindex_df = pd.DataFrame(reformed_dict)
print(multiIndex_df)
# >> Table X
# >> A B C
# >> 0 1 4 7
# >> 1 2 5 8
# >> 2 3 6 9
Run Code Online (Sandbox Code Playgroud)