我有一个数据框df1
,其中包含配送中心列表,hq行。我创建了一个新的数据框df2
,使用DC_Name
作为索引,HQ_line
作为标题。我想将df2
中的NaN替换为来自df1
的相应Field_Line。听起来很简单,但我不确定最佳方法。
DF1
DC_Name HQ_Line Field_Line
0 Albany, NY AAC NAC
1 Albany, NY AC AC
2 Albany, NY ACB ACK
3 Albany, NY ACC NaN
4 Albany, NY ACE ACK
DF2
AAC AC ACB ACC ACE ACO ACT ADO AIT AKA ... WWM
Albany, NY NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN
Albuquerque, NM NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN
Altoona, PA NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN
Atlanta, GA NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN
Birmingham, AL NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN
答案 0 :(得分:4)
示例的输出与输入不匹配。但试试看看它是否适合你:
df.pivot(index='DC_Name',columns='HQ_Line')
答案 1 :(得分:0)
我的建议是简单地使用词典并围绕JSON修改数据集,如果可以的话(或者只是解析文本文件以将数据集构建为python词典)。
伪代码将是:
df1 = [
{"index" : "Albany, NY", "HQ" : "AAC", "value" : "NAC"},
#etc.
]
等等:
df2 = {
"Albany, NY" : {
"AAC" : None, # None is equiv. to your NaN
#etc.
}
}
然后用以下内容构建数据集:
for line in df1:
index = line['index']
hq = line['hq']
value = line['value']
df2[index][hq] = value