我使用以下代码:
string="Verificamos {} vem crescendo em media {} porcento ao ano. A empresa {} por exemplo {}"
df['go']=[string.format(*r) for r in dfcres[['CNAE_x','Crescimento_t11_Peers_CNAE','Top_Cres1','Top_Cres1%']].values.tolist()]
如果我打印dfcres[['CNAE_x','Crescimento_t11_Peers_CNAE','Top_Cres1','Top_Cres1%']]
,我会:
CNAE_x Crescimento_t11_Peers_CNAE Top_Cres1 Top_Cres1%
6 "bovinos" 0.10 "Maria Ltd" 0.22
8 "suínos" 0.08 "Carla Ltd" 0.10
9 "construção" 0.93 "Mark SA" 0.30
所以,df [' go']应如下所示:
go
6 "Verificamos bovinos vem crescendo em media 0.10 porcento ao ano. A empresa Maria Ltd por exemplo 0.22"
8 "Verificamos suínos vem crescendo em media 0.08 porcento ao ano. A empresa Carla Ltd por exemplo 0.10"
9 "Verificamos construção vem crescendo em media 0.93 porcento ao ano. A empresa Maria Ltda por exemplo 0.30"
我收到此错误:
ValueError: Length of values does not match length of index
我不知道这个错误是什么意思。有人可以帮助或建议另一种方法来获得相同的结果吗?
答案 0 :(得分:1)
我在没有dfcres
的情况下在我自己的计算机上尝试了这个,只是将值保存为列表。这很有效。所以,我怀疑问题在于:
{}
。 (您的预期结果以数字开头)或values()
函数返回的值尝试从那里开始
答案 1 :(得分:1)
你的python版本是什么?它适用于我在Python 3.6.4上使用这个例子:
CNAE_x Outravar1 Crescimento_t11_Peers_CNAE Top_Cres1 Top_Cres1% Outravar2 "bovinos" 12 0.10 "Maria Ltd" 0.22 "vaca" "suínos" 1575 0.08 "Carla Ltd" 0.10 "porco" "construção" 358 0.93 "Mark SA" 0.30 "casas"
编码:
>>> dfcres = pd.read_clipboard()
dfcres
CNAE_x Outravar1 Crescimento_t11_Peers_CNAE Top_Cres1 Top_Cres1% Outravar2
0 bovinos 12 0.10 Maria Ltd 0.22 vaca
1 suínos 1575 0.08 Carla Ltd 0.10 porco
2 construção 358 0.93 Mark SA 0.30 casas
但如果df
没有与dfcresc
相同的行数,例如
>>> df
CNAE_x Outravar1 Crescimento_t11_Peers_CNAE Top_Cres1 Top_Cres1% Outravar2
0 bovinos 12 0.10 Maria Ltd 0.22 vaca
1 construção 358 0.93 Mark SA 0.30 casas
然后你仍然会收到此消息错误。
如果您不确定两个数据帧是否具有相同的行数,则应避免使用此方法。
如果我的猜测是正确的,df
是巴西经济活动(CNAE)的数据框。因此,您可以使用CNAE_x
作为唯一标识符,例如:
首先,创建列 dfcres [' go'] :
dfcres['go']=[string.format(*r) for r in dfcres.loc[,'CNAE_x','Crescimento_t11_Peers_CNAE','Top_Cres1','Top_Cres1%']].values.tolist()]
然后加入匹配具有相同CNAE_x
值的行的数据:
pd.merge(df, dfcres,
how='right', on='CNAE_x')