[英]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.split
與stack
,還要測試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.