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

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

如果列名稱匹配,則將數據框列值更改為行

如果列名稱匹配,則將數據框列值更改為行

倚天杖 2023-12-12 10:15:19
我將 json 對象規范化為數據幀,json_normalize如下所示:ID Name     Email_id      ID Name Email_id     ID Name  Email_id1   A      [email protected]     2  B    [email protected]  3  C    [email protected]我想將列值轉換為這樣的行:-ID   Name   Email_id1     A      [email protected]     B      [email protected]     C      [email protected]但我無法做到這一點。我嘗試過pd.melt(),但它給了我Data must be 1-dimensional例外。
查看完整描述

2 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

您只能選擇一列,但由于重復的列名稱被選擇,因此選擇了具有相同標簽的所有列,然后轉換為1dnumpy 數組并傳遞給DataFrame構造函數:


print (df['ID'])

   ID  ID  ID

0   1   2   3


df = pd.DataFrame({'ID': df['ID'].to_numpy().ravel(),

                   'Name': df['Name'].to_numpy().ravel(),

                   'Email_id': df['Email_id'].to_numpy().ravel()})

print (df)

   ID Name     Email_id

0   1    A  [email protected]

1   2    B  [email protected]

2   3    C  [email protected]

另一個想法是MultiIndex在列中創建GroupBy.cumcount并通過以下方式重塑DataFrame.stack:


s = df.columns.to_series()


df.columns = [s, s.groupby(s).cumcount()]

print (df)


  ID Name     Email_id ID Name     Email_id ID Name     Email_id

   0    0            0  1    1            1  2    2            2

0  1    A  [email protected]  2    B  [email protected]  3    C  [email protected]


df = df.stack().reset_index(drop=True)

print (df)

      Email_id  ID Name

[email protected]   1    A

[email protected]   2    B

[email protected]   3    C


查看完整回答
反對 回復 2023-12-12
?
ibeautiful

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

如果您確實知道這樣的數據結構是一致的,您可以按索引對數據進行切片,然后連接它們:


pd.concat([df.iloc[:, i:i+3] for i in range(0, df.shape[1], 3)])

要確保獲取列 ID:


import numpy as np


# Get the target indexes

idx = np.arange(df.shape[1])[df.columns=='ID']

idx = np.append(idx, df.shape[1])


# Slice and concatenate data

pd.concat([df.iloc[:, idx[i]:idx[i+1]] for i in range(len(idx)-1)])


查看完整回答
反對 回復 2023-12-12
  • 2 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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