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

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

熊貓將列表分成多列

熊貓將列表分成多列

縹緲止盈 2019-06-18 12:53:48
熊貓將列表分成多列我有一個熊貓數(shù)據(jù)框架,列如下所示:`In [207]:df2.teamsOut[207]: 0         [SF, NYG]1         [SF, NYG]2         [SF, NYG]3         [SF, NYG]4         [SF, NYG]5         [SF, NYG]6         [SF, NYG]7         [SF, NYG]`我需要使用熊貓將這一列表分成兩個列,分別命名為第1組和第2組。
查看完整描述

3 回答

?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗 獲得超12個贊

你可以用DataFrame構(gòu)造器lists通過轉(zhuǎn)換為numpy array通過values帶著tolist:

import pandas as pd

d1 = {'teams': [['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],
                ['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG']]}df2 = pd.DataFrame(d1)print (df2)
       teams0  [SF, NYG]1  [SF, NYG]2  [SF, NYG]3  [SF, NYG]4  [SF, NYG]5  [SF, NYG]6  [SF, NYG]

df2[['team1','team2']] = pd.DataFrame(df2.teams.values.tolist(), index= df2.index)print (df2)
       teams team1 team20  [SF, NYG]    SF   NYG1  [SF, NYG]    SF   NYG2  [SF, NYG]    SF   NYG3  [SF, NYG]   
        SF   NYG4  [SF, NYG]    SF   NYG5  [SF, NYG]    SF   NYG6  [SF, NYG]    SF   NYG

新的DataFrame:

df3 = pd.DataFrame(df2['teams'].values.tolist(), columns=['team1','team2'])print (df3)
  team1 team20    SF   NYG1    SF   NYG2    SF   NYG3    SF   NYG4    SF   NYG5    SF   NYG6    SF   NYG

溶液apply(pd.Series)非常慢:

#7k rowsdf2 = pd.concat([df2]*1000).reset_index(drop=True)In [89]: %timeit df2['teams'].apply(pd.Series)1 loop, best of 3: 1.15 s per 
loopIn [90]: %timeit pd.DataFrame(df2['teams'].values.tolist(), columns=['team1','team2'])1000 loops, best of 3: 820 μs per loop


查看完整回答
反對 回復(fù) 2019-06-18
?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗 獲得超9個贊

更簡單的解決方案:

pd.DataFrame(df2.teams.tolist(), columns=['team1', 'team2'])

收益,

  team1 team2-------------0    SF   NYG1    SF   NYG2    SF   NYG3    SF   NYG4    SF   NYG5    SF   NYG6
      SF   NYG7    SF   NYG

如果希望拆分分隔字符串的列而不是列表,也可以這樣做:

pd.DataFrame(df.teams.str.split('<delim>', expand=True).values,
             columns=['team1', 'team2'])


查看完整回答
反對 回復(fù) 2019-06-18
?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗 獲得超14個贊

似乎有一種語法上更簡單的方法,因此更容易記住,而不是建議的解決方案。我假設(shè)該列在dataframedf中稱為“meta”:

df2 = pd.DataFrame(df['meta'].str.split().values.tolist())


查看完整回答
反對 回復(fù) 2019-06-18
  • 3 回答
  • 0 關(guān)注
  • 615 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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