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

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

將幾行按列值連接成一行,并根據連接的行數將結果數據幀拆分為多個數據幀

將幾行按列值連接成一行,并根據連接的行數將結果數據幀拆分為多個數據幀

慕田峪9158850 2022-06-28 10:33:15
我有一個熊貓數據框,其中幾行共享特定的列值。對于這些行,我想將這些行連接成一行。并且單個具有共享列值的行數存在變化,我想將這些數據幀拆分為它們自己單獨的數據幀,因此對于特定數量的共享行是一個唯一的數據幀。這是我想要的一個例子。import pandas as pddata = [['tom', 2], ['ni2ck', 2], ['j3uli', 4] , ['nic4k', 4], ['jul5i', 4] , ['nic6k', 7], ['ju7li', 7] , ['nic8k', 7], ['ju9li', 7] , ['nic1k', 8], ['car', 8]]df = pd.DataFrame(data, columns = ['Name', 'Age']) df 上面的代碼生成原始數據框的樣子結果將是Name    Age0   tom 21   ni2ck   22   j3uli   43   nic4k   44   jul5i   45   nic6k   76   ju7li   77   nic8k   78   ju9li   79   nic1k   810  car 8我想將共享相同 Age 列的所有行放入一行,然后根據為每個共享行生成的列數分離數據框。所以結果看起來像這樣第一個結果數據幀,它有兩行,因為有兩行共享相同的列數。Name    Name    Age0   tom ni2ck   21   nic1k   car 8第二個結果數據框Name    Name    Name    Age0   j3uli   nic4k   jul5i   4第三個結果數據框    Name    Name    Name    Name    Age0   nic6k   ju7li   nic8k   ju9li   7
查看完整描述

2 回答

?
溫溫醬

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

這是一種方法


df['New']=df.groupby('Age').cumcount()

s=df.pivot(index='Age',columns='New',values='Name')

l=[ y.dropna(1) for _ , y in s.groupby(s.isnull().sum(1))]

l[0]

New      0      1      2      3

Age                            

7    nic6k  ju7li  nic8k  ju9li

l[1]

New      0      1      2

Age                     

4    j3uli  nic4k  jul5i

l[2]

New      0      1

Age              

2      tom  ni2ck

8    nic1k    car


查看完整回答
反對 回復 2022-06-28
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

使用collections.defaultdict


from collections import defaultdict


d = defaultdict(list)


for age, df_ in df.groupby('Age'):

    d[len(df_.T.columns)].append(df_.reset_index(drop=True).T.loc[['Name']].assign(Age=age))


d = {k: pd.concat(v, ignore_index=True ) for k,v in d.items()}

然后,通過它們擁有的名稱數量訪問數據框。例如,


>>> d[2]

       0      1  Age

0    tom  ni2ck    2

1  nic1k    car    8

>>> d[3]

       0      1      2  Age

0  j3uli  nic4k  jul5i    4


查看完整回答
反對 回復 2022-06-28
  • 2 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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