我正在尝试将变量整合到数据集中。 我有这样的东西:
import pandas as pd
import numpy as np
data = np.array([[160,90,'skirt_trousers','tight_comfy'],[180,100,'trousers_skirt','long_short']])
dford = pd.DataFrame(data,columns = ['height','size','order','preference'])
并且正在尝试将其添加到类似这样的地方:
dataForTarget = np.array([['o1',160,'skirt','tight'],['o2',180,'trousers','long'],['o1','comfy'],'short']])
Targetdford = pd.DataFrame(dataForTarget,columns = ['orderID','height','preference'])
第一步,我从字符串中提取了尽可能多的数据, 然后清洗它们:
variables = dford.columns.tolist()
variables.append('ord1')
secondord = dford.order.str.extractall (r'_(.*)')
secondord = secondord.unstack()
secondord.columns = secondord.columns.droplevel()
dford1 = dford.join(secondord)
dford1. columns = variables
dford1.order = dford1.order.str.replace(r'(_.*)','')
variables = dford1.columns.tolist()
variables.append('pref1')
secondpref = dford.preference.str.extractall (r'_(.*)')
secondpref = secondpref.unstack()
secondpref.columns = secondpref.columns.droplevel()
dford2 = dford1.join(secondpref)
dford2. columns = variables
dford2.order = dford2.order.str.replace(r'(_.*)','')
在此阶段,我不知如何添加这些新信息作为观察值(成行)。
我能想出的最好的方法是,但是由于索引包含 重复的条目。但是,即使它没有失败,我怀疑它会 仅在我尝试填写缺失值时有用。
但是我无处可去。
dford3 = dford2.rename(columns = {'ord1': 'order','pref1': 'preference'})
dford3= dford3.stack()
dford3= dford3.unstack()