簡體   English   中英

用定界符重塑熊貓數據框列

[英]reshape pandas dataframe column with delimiter

我有以下數據框(帶有2列-str的選項卡文件):

id1  id2

g1   ID:05434
g1   ID:05434
g1   NaN
g1   ID:05434|ID:38720|ID:33345

做完之后

df1 = df[df['id2'].notnull()]
df2 = df1.drop_duplicates(['id1','id2'])

我有df2,

id1  id2

g1   ID:05434
g1   ID:05434|ID:38720|ID:33345

我的目標是將其擴展為僅2列

id1  id2

g1   ID:05434
g1   ID:05434
g1   ID:38720
g1   ID:33345

為此有擴展功能嗎?

提前致謝。

使用str.splitstack ,還要測試remove NaN S用於DataFrame.dropna

編輯:通過OP注釋被刪除,最后以排序值重復:

df2 = (df.dropna(subset=['id2'])
         .set_index('id1')['id2']
         .str.split('|', expand=True)
         .stack()
         .reset_index(level=1, drop=True)
         .reset_index(name='id2')
         .sort_values(by=['col1', 'col2'])
         .drop_duplicates(['col1','col2']))

print (df2)
  id1       id2
0  g1  ID:05434
2  g1  ID:38720
3  g1  ID:33345

暫無
暫無

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

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