簡體   English   中英

無法創建 pandas DataFrame 與來自 dicts 的 MultiIndex 列作為列

[英]Can't create pandas DataFrame with MultiIndex columns from dicts with tuples as columns

我有這個 Python 數據結構:

a = [
    {
        ('Temperature', 'C'): 25,
        ('Temperature', 'F'): 77
    },
    {
        ('Temperature', 'C'): 30,
        ('Temperature', 'F'): 86
    }
]

我嘗試將此數據結構轉換為像這樣的制表符分隔字符串,header 有 2 行:

Temperature Temperature
C   F
25  77
30  86

為此,我首先嘗試將此數據結構轉換為具有 MultiIndex 列的 DataFrame。 但我不能使用DataFrame.from_records(a)方法來做到這一點,因為它返回一個以元組作為名稱的索引列。 我怎樣才能實現 MultiIndex 列呢?

順便說一句,我可以做相反的事情。 當我有一個像上面這樣的制表符分隔文件時,我可以閱讀它:

a_as_dataframe = pd.read_csv(r"C:\my_tab_separated_file.tsv", sep="\t", header=[0, 1])

然后將其轉換為這樣的記錄:

a = a_as_dataframe.to_dict("records")

我想要實現的是相反的。

如何使用MultiIndex.from_tuples

df = pd.DataFrame(a)
df.columns = pd.MultiIndex.from_tuples(df.columns)

df現在是:

  Temperature
            C   F
0          25  77
1          30  86
>>> df.equals(a_as_dataframe)
True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM