pandas DataFrame:提取2列数据框中的数据

我要提取一个2列df,它具有冗余但不规则的结构(与“代码”关联的“名称”,“代码”和“ w”)。 DF:

    import pandas as pd
    pd.DataFrame([('name','john'),('date','NaN'),('curr',('code','w'),('123',0.4),('456',0.5),('789','0.1'),('name','Elsa'),('112',0.3),('243','0.3'),('351','0.1')               
                  ])

我想提取这个:

    name code w
    john 123 0.4
    john 456 0.5
    john 789 0.1
    elsa 112 0.3
    elsa 243 0.3
    elsa 789 0.3
    elsa 351 0.1

我该怎么做? 谢谢

duxinlang 回答:pandas DataFrame:提取2列数据框中的数据

使用:

#filter rows by name
df[3] = df.loc[df[0] == 'name',1]
#forward filling missing values
df[3] = df[3].ffill()

#filter out rows by 0 column and change order of columns [3,1]
df = df.loc[~df[0].isin(['name','date','curr','code']),[3,1]]
#set columns names
df.columns= ['name','code','w']
print (df)
    name code    w
4   john  123  0.4
5   john  456  0.5
6   john  789  0.1
11  Elsa  112  0.3
12  Elsa  243  0.3
13  Elsa  789  0.3
14  Elsa  351  0.1
本文链接:https://www.f2er.com/3160135.html

大家都在问