我想根据另一数据框(df2)中一列内df2匹配值的列名填充一个数据框(df2)。这是一个简化的示例:
names = list('abcd')
data = list('aadc')
df1 = pd.DataFrame(data,columns=['data'])
df2 = pd.DataFrame(np.empty([4,4]),columns=names)
df1:
data
0 a
1 a
2 d
3 c
df2:
a b c d
0 0.00 0.00 0.00 0.00
1 0.00 0.00 0.00 0.00
2 0.00 0.00 0.00 0.00
3 0.00 0.00 0.00 0.00
我想更新df2,以便第一行在a列下返回一个数字(现在说1),其他列返回0。 df2的第二行将返回相同的行,第三行将为a / b / c列返回0,为d列返回1,第四行将为a / b / d列返回0,为c列返回1。 / p>
非常感谢您的帮助!
答案 0 :(得分:1)
您可以在此处进行numpy广播:
XlsxWriter is not installed!!
Collecting XlsxWriter
Downloading https://files.pythonhosted.org/packages/2b/98/17875723b6814fc4d0fc03f0997ee00de2dbd78cf195e2ec3f2c9c789d40/XlsxWriter-1.3.3-py2.py3-none-any.whl (144kB)
|████████████████████████████████| 153kB 9.4MB/s
Installing collected packages: XlsxWriter
Successfully installed XlsxWriter-1.3.3
10 Urls Found
Parsing Excel Sheet : 0GdpGrowthRate
Parsing Excel Sheet : 1WindPowerPotential
Parsing Excel Sheet : 2ListOfDistrictsInIndia
Parsing Excel Sheet : 3ListOfIndianPeopleByNetWorth
Parsing Excel Sheet : 4StatesAndUnionTerritoriesOfIn
Parsing Excel Sheet : 5ListOfGovernorsGeneralOfIndia
Parsing Excel Sheet : 6ListOfIndianIndependenceActiv
Parsing Excel Sheet : 7ListOfIndianGrammyAwardWinner
Parsing Excel Sheet : 8ListOfIndianAcademyAwardWinne
Parsing Excel Sheet : 9ListOfHighestGrossingIndianFi
或使用df2[:] = (df1['data'].values[:,None] == df2.columns.values).astype(int)
:
get_dummies
输出:
df2[:] = pd.get_dummies(df1['data']).reindex(df2.columns, axis=1)