第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如果列名稱匹配,則將數(shù)據(jù)框列值更改為行

如果列名稱匹配,則將數(shù)據(jù)框列值更改為行

倚天杖 2023-12-12 10:15:19
我將 json 對(duì)象規(guī)范化為數(shù)據(jù)幀,json_normalize如下所示:ID Name     Email_id      ID Name Email_id     ID Name  Email_id1   A      A@gmail.com     2  B    B@gmail.com  3  C    C@gmail.com我想將列值轉(zhuǎn)換為這樣的行:-ID   Name   Email_id1     A      A@gmil.com2     B      B@gmail.com3     C      C@gmail.com但我無法做到這一點(diǎn)。我嘗試過pd.melt(),但它給了我Data must be 1-dimensional例外。
查看完整描述

2 回答

?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊

您只能選擇一列,但由于重復(fù)的列名稱被選擇,因此選擇了具有相同標(biāo)簽的所有列,然后轉(zhuǎn)換為1dnumpy 數(shù)組并傳遞給DataFrame構(gòu)造函數(shù):


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  A@gmail.com

1   2    B  B@gmail.com

2   3    C  C@gmail.com

另一個(gè)想法是MultiIndex在列中創(chuàng)建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  A@gmail.com  2    B  B@gmail.com  3    C  C@gmail.com


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

print (df)

      Email_id  ID Name

0  A@gmail.com   1    A

1  B@gmail.com   2    B

2  C@gmail.com   3    C


查看完整回答
反對(duì) 回復(fù) 2023-12-12
?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果您確實(shí)知道這樣的數(shù)據(jù)結(jié)構(gòu)是一致的,您可以按索引對(duì)數(shù)據(jù)進(jìn)行切片,然后連接它們:


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)])


查看完整回答
反對(duì) 回復(fù) 2023-12-12
  • 2 回答
  • 0 關(guān)注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)