python数据框创建新列

标签 python pandas dataframe

我正在使用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/

相关文章:

java - 将嵌套 Json 导入 cassandra

python - Pandas 数据框 : get column item when the corresponding item in another column is greater than a value

python - 在 PANDAS 中使用 value_counts() 出现次数/频率为零

python - 我不能按列名提取数据?

python-3.x - Pandas 有条件地组合(和求和)行

python - 在多个时间范围内聚合/重采样 pandas 多索引数据帧并预测 ARIMA

python - 在 PuLP(Python) 中指定 lowBound 和 upBound

python - 销售人员 API : Save email communication

Python:如何打印字典值?

python - 为什么 pandas 会丢弃唯一的行?