Pandas 熊猫数据帧:在2列数据帧中提取数据
我有一个2列的df,有一个冗余但不规则的结构(“名称”、“代码”和与“代码”关联的“w”),我想提取。 以下是DF:Pandas 熊猫数据帧:在2列数据帧中提取数据,pandas,Pandas,我有一个2列的df,有一个冗余但不规则的结构(“名称”、“代码”和与“代码”关联的“w”),我想提取。 以下是DF: import pandas as pd pd.DataFrame([('name','john'), ('date','NaN'), ('curr','NaN'), ('code','w'), ('123',0.4),
import pandas as pd
pd.DataFrame([('name','john'),
('date','NaN'),
('curr','NaN'),
('code','w'),
('123',0.4),
('456',0.5),
('789','0.1'),
('name','Elsa'),
('date','NaN'),
('curr','NaN'),
('code','w'),
('112',0.3),
('243',0.3),
('789','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
我该怎么做?
谢谢使用:
#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,0,1]
df = df.loc[~df[0].isin(['name','date', 'curr', 'code']), [3, 0, 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