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

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

我如何將這個(gè)數(shù)據(jù)框轉(zhuǎn)入這個(gè)數(shù)據(jù)框?

我如何將這個(gè)數(shù)據(jù)框轉(zhuǎn)入這個(gè)數(shù)據(jù)框?

狐的傳說(shuō) 2023-04-11 16:17:02
我怎樣才能把df1變成df2?df1 = pd.DataFrame(  {  'item1_aspect1' : ["a", "b", "c"],  'item1_aspect2' : [1,2,3],  'item1_aspect3' : ["[12,34]", "[56,78]", "[99,10]"],  'item2_aspect1' : ["a", "b", "c"],  'item2_aspect2' : [1,2,3],  'item2_aspect3' : ["[12,34]", "[56,78]", "[99,10]"],  'item3_aspect1' : ["a", "b", "c"],  'item3_aspect2' : [1,2,3],  'item3_aspect3' : ["[12,34]", "[56,78]", "[99,10]"]  })df2 = pd.DataFrame({  'aspect_1' : ["a", "b", "c", "a", "b", "c", "a", "b", "c"],  'aspect_2' : [1,2,3,1,2,3,1,2,3],  'aspect_3' : ["[12,34]", "[56,78]", "[99,10]", "[12,34]", "[56,78]", "[99,10]", "[12,34]", "[56,78]", "[99,10]"]})即列名是一個(gè)標(biāo)識(shí)符,它分成幾行。我不知道該怎么做。
查看完整描述

4 回答

?
胡說(shuō)叔叔

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

我們需要先調(diào)整列類型,然后wide_to_long


df1.columns=df1.columns.str.split('_').map(lambda x : '_'.join(x[::-1]))


yourdf=pd.wide_to_long(df1.reset_index(),

                       ['aspect1','aspect2','aspect3'], 

                       i ='index', 

                       j = 'drop', 

                       sep = '_',suffix='\w+').reset_index(drop=True)

Out[137]: 

  aspect1  aspect2  aspect3

0       a        1  [12,34]

1       b        2  [56,78]

2       c        3  [99,10]

3       a        1  [12,34]

4       b        2  [56,78]

5       c        3  [99,10]

6       a        1  [12,34]

7       b        2  [56,78]

8       c        3  [99,10]


查看完整回答
反對(duì) 回復(fù) 2023-04-11
?
qq_笑_17

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

如果你想堅(jiān)持使用 pandas 操作,不想不斷更改數(shù)據(jù)類型并更喜歡列表理解。試試這個(gè)方法 -


lst = list(df1.columns)

n=3

new_cols = ['aspect_1', 'aspect_2', 'aspect_3']


#break the column list into groups of n = 3 in this case

chunks = [lst[i:i + n] for i in range(0, len(lst), n)]


#concatenate the list of dataframes over axis = 0after renaming columns of each 

pd.concat([df1[i].set_axis(new_cols, axis=1) for i in chunks], axis=0, ignore_index=True)

aspect_1    aspect_2    aspect_3

0   a   1   [12,34]

1   b   2   [56,78]

2   c   3   [99,10]

3   a   1   [12,34]

4   b   2   [56,78]

5   c   3   [99,10]

6   a   1   [12,34]

7   b   2   [56,78]

8   c   3   [99,10]


查看完整回答
反對(duì) 回復(fù) 2023-04-11
?
江戶川亂折騰

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

獲取唯一的尾列名稱:

cols?=?df1.columns.str.split("_").str[-1].drop_duplicates()

在數(shù)據(jù)框上使用 numpy 的重塑,并創(chuàng)建一個(gè)新的數(shù)據(jù)框:

pd.DataFrame(np.reshape(df1.to_numpy(), df1.shape[::-1]), columns=cols)


aspect1 aspect2 aspect3

0? ?a? ?1? ?[12,34]

1? ?a? ?1? ?[12,34]

2? ?a? ?1? ?[12,34]

3? ?b? ?2? ?[56,78]

4? ?b? ?2? ?[56,78]

5? ?b? ?2? ?[56,78]

6? ?c? ?3? ?[99,10]

7? ?c? ?3? ?[99,10]

8? ?c? ?3? ?[99,10]

或者,我們可以結(jié)合使用numpy split和numpy vstack來(lái)獲得輸出:

column_count = df1.columns.str[-1].astype(int).max()


pd.DataFrame(np.vstack(np.split(df1.to_numpy(), column_count, axis=1)), columns=cols)


aspect1 aspect2 aspect3

0? ?a? ?1? ?[12,34]

1? ?b? ?2? ?[56,78]

2? ?c? ?3? ?[99,10]

3? ?a? ?1? ?[12,34]

4? ?b? ?2? ?[56,78]

5? ?c? ?3? ?[99,10]

6? ?a? ?1? ?[12,34]

7? ?b? ?2? ?[56,78]

8? ?c? ?3? ?[99,10]


查看完整回答
反對(duì) 回復(fù) 2023-04-11
?
萬(wàn)千封印

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

這是一個(gè)相當(dāng)簡(jiǎn)單的方法:


df1.columns = [c[6:] for c in df1.columns]

pd.concat([df1.iloc[:, 0:3], df1.iloc[:, 3:6], df1.iloc[:, 6:9]], axis=0)

輸出是:


  aspect1  aspect2  aspect3

0       a        1  [12,34]

1       b        2  [56,78]

2       c        3  [99,10]

0       a        1  [12,34]

1       b        2  [56,78]

...



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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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