簡體   English   中英

合並熊貓 Df 中的特定行

[英]Merge specific rows in pandas Df

我在 read_excel 之后有 df,其中一些值(來自一列,帶有字符串)被划分。 我怎樣才能將它們合並回來?

例如:我的 df

{'CODE': ['A', None, 'B', None, None, 'C'],
'TEXT': ['A', 'a', 'B', 'b', 'b', 'C'],
'NUMBER': ['1', None, '2', None, None,'3']}

我想要的df

{'CODE': ['A','B','C'],
'TEXT': ['Aa','Bbb','C'],
'NUMBER': ['1','2','3']}

我找不到正確的解決方案。 我嘗試以不同的方式導入數據,但也無濟於事

您可以轉發填充缺失值或None用於具有聚合join的組和NUMBER列的第一個非None值:

d = {'CODE': ['A', None, 'B', None, None, 'C'],
'TEXT': ['A', 'a', 'B', 'b', 'b', 'C'],
'NUMBER': ['1', None, '2', None, None,'3']}

df = pd.DataFrame(d)


df1 = df.groupby(df['CODE'].ffill()).agg({'TEXT':''.join, 'NUMBER':'first'}).reset_index()
    
print (df1)
  CODE TEXT NUMBER
0    A   Aa      1
1    B  Bbb      2
2    C    C      3

您可以生成字典:

cols = df.columns.difference(['CODE'])
d1 = dict.fromkeys(cols, 'first')
d1['TEXT'] = ''.join

df1 = df.groupby(df['CODE'].ffill()).agg(d1).reset_index()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM