我正在使用plotly
,在他们的文档中,我看到了这个声明。
df['text'] = df['state'] + '<br>' +\
'Beef '+df['beef']+' Dairy '+df['dairy']+'<br>'+\
'Fruits '+df['total fruits']+' Veggies ' + df['total veggies']+'<br>'+\
'Wheat '+df['wheat']+' Corn '+df['corn']
Plotly creating map
毫无疑问,我尝试将我的数据集实现到此代码中,
df_region["text"] = df_region["addr_state"] + '<br>' +
"Total loan amount ($ USD): " + df_region["loan_amnt"] + "<br>" +
"Avg loan amount ($ USD): " + df_region["avg_loan_amnt_by_state"] + '<br>' +
"Avg employment length (Years): " + df_region["avg_emp_length_by_state"]
但是我收到了这些错误消息
TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('<U33') dtype('<U33') dtype('<U33')
我曾经将除 addr_state
之外的所有列都设为数字(int64 或 float64)。后来,我将所有列类型更改为对象,但仍然没有得到任何运气。有人可以暗示我在这里想念什么吗?
我的数据集的头部看起来像这样
amnt num avg_loan emp_length addr_state
1 36978050 2205 16770 6.00 AK
2 164627650 11200 14698 6.15 AL
3 93416075 6640 14068 5.90 AR
4 290110100 20412 14212 5.37 AZ
5 1898145250 129517 14655 5.66 CA
谢谢!
最佳答案
我认为最简单的方法是首先将所有数字列转换为 str
:
c = ["loan_amnt", "avg_loan_amnt_by_state", "avg_emp_length_by_state"]
df_region[c] = df_region[c].astype(str)
或者单独转换每一列:
df_region["text"] = df_region["addr_state"] + '<br>' +
"Total loan amount ($ USD): " + df_region["loan_amnt"].astype(str) + "<br>" +
"Avg loan amount ($ USD): " + df_region["avg_loan_amnt_by_state"].astype(str) + '<br>' +
"Avg employment length (Years): " + df_region["avg_emp_length_by_state"].astype(str)
关于python数据框创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47525175/