亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python中的“重組”數據框

python中的“重組”數據框

SMILET 2023-04-25 17:53:29
我正在將以前在 SPSS 建模器中完成的一些數據清理工作翻譯成 Python。在 SPSS 中,您有一個稱為重組的“節點”。我試圖弄清楚如何在 Python 中執行相同的操作,但我正在努力實現這一點。它所做的是將 X 列中的每個值與 A、B、C 等不同列中的所有值組合起來...。因此,原始數據框如下所示:Code         Freq1    Freq2   A01          1        7               B02          0        6               C03          17       8              轉換后應該是這樣的:Code         Freq1    Freq2    A01_Freq1  A01_Freq2  B02_Freq1   B02_Freq2    C03_Freq1   C03_Freq2A01          1        7        1          7          Nan         Nan          Nan         NanB02          0        6        Nan        Nan        0           6            Nan         NanC03          17       8        Nan        Nan        Nan         Nan          17          8       我已經嘗試了一些旋轉的東西,但我想這不能在 Python 中一步完成......
查看完整描述

1 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

使用DataFrame.set_indexwithDataFrame.unstackDataFrame.sort_indexfor new?DataFramewith?MultiIndex,然后用 s 壓平它f-string,最后通過 將其添加到原始的DataFrame.join

df1 = df.set_index('Code', append=True).unstack().sort_index(axis=1, level=1)

df1.columns = df1.columns.map(lambda x: f'{x[1]}_{x[0]}')


df = df.join(df1)

print (df)

? Code? Freq1? Freq2? A01_Freq1? A01_Freq2? B02_Freq1? B02_Freq2? C03_Freq1? \

0? A01? ? ? 1? ? ? 7? ? ? ? 1.0? ? ? ? 7.0? ? ? ? NaN? ? ? ? NaN? ? ? ? NaN? ?

1? B02? ? ? 0? ? ? 6? ? ? ? NaN? ? ? ? NaN? ? ? ? 0.0? ? ? ? 6.0? ? ? ? NaN? ?

2? C03? ? ?17? ? ? 8? ? ? ? NaN? ? ? ? NaN? ? ? ? NaN? ? ? ? NaN? ? ? ?17.0? ?


? ?C03_Freq2??

0? ? ? ? NaN??

1? ? ? ? NaN??

2? ? ? ? 8.0??


查看完整回答
反對 回復 2023-04-25
  • 1 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號