簡體   English   中英

將具有相同行標簽但前綴不同的值組合在一起-pandas

[英]combine values with identical row labels but different prefixes - pandas

df = pd.DataFrame({'x':['az_LC','bz_LC','ZG','az_KJ','bz_KJ'],'y':[1,2,3,4,5]})

我想將y的值組合為相同的字母組合(不帶前綴)。 例如,存在兩個帶有前綴azbzLC實例。 我想將LCy值合並到一個列表中。 問題是我還有其他沒有前綴的字母組合(例如ZG )。 這是所需的輸出

   x    y
0  LC  [1,2]
1  ZG  [3]
2  KJ  [4,5]

編輯:我的一些字母組​​合包括下划線,但它們仍然是唯一的

df = pd.DataFrame({'x':['az_LC','bz_LC','ZG','az_KJ','bz_KJ','U_FT'],'y':[1,2,3,4,5,6]})

所需的輸出

   x      y
0  LC    [1,2]
1  ZG    [3]
2  KJ    [4,5]
3  U_FT  [6]

IIUC str.splitpd.Series.groupby

df.y.groupby(df.x.str.split('_').str[-1]).apply(list).reset_index()
Out[103]: 
    x       y
0  KJ  [4, 5]
1  LC  [1, 2]
2  ZG     [3]

更新

df1=df.loc[df.x.str.startswith(('az','bz'))]
df2=df.drop(df1.index)
s1=df1.y.groupby(df1.x.str.split('_',1).str[-1]).apply(list)
s2=df2.y.groupby(df2.x).apply(list)
df=pd.concat([s1,s2])
df
Out[113]: 
x
KJ      [4, 5]
LC      [1, 2]
U_FT       [6]
ZG         [3]
Name: y, dtype: object

暫無
暫無

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

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