TypeError:不能将序列乘以“str”类型的非整数 - 将两列相乘后

Posted

技术标签:

【中文标题】TypeError:不能将序列乘以“str”类型的非整数 - 将两列相乘后【英文标题】:TypeError: can't multiply sequence by non-int of type 'str' - after multiplying two columns 【发布时间】:2021-08-07 19:56:01 【问题描述】:

我是 Python 新手,我想了解为什么会出现此错误

我试图将结果放入一个新列(称为总和)中:“订购数量”乘以“每个价格”。

我收到错误:TypeError: can't multiply sequence by non-int of type 'str' 我不明白为什么,你知道为什么吗?

我做了以下事情:

import pandas as pd

files = ["Sales_January_2019.csv", 
         "Sales_February_2019.csv",
         "Sales_March_2019.csv",
         "Sales_April_2019.csv",
         "Sales_May_2019.csv",
         "Sales_June_2019.csv",
         "Sales_July_2019.csv",
         "Sales_August_2019.csv",
         "Sales_September_2019.csv",
         "Sales_October_2019.csv",
         "Sales_November_2019.csv",
         "Sales_December_2019.csv"]

df = pd.DataFrame()
for name in files:
    tmp = pd.read_csv(name, index_col=0)
    df = df.append(tmp)
    
df = df.reset_index()
df = df.drop(['x_t', 'perf'], axis=1)
print(df)

print(df['Order Date'])
df['Month'] = df['Order Date'].str[0:2]
print(df['Month'])

#df['Month'] = pd.to_numeric(df['Month']) 

liste_av_mndsnr = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']
month_filter = (df['Month'].isin(liste_av_mndsnr))

df = df[month_filter] 
print(df['Month'])
print(df)

df ['Sum'] = df['Quantity Ordered'] * df['Price Each'] 
df.head()
print (df)

【问题讨论】:

【参考方案1】:

您是否检查了“订购数量”和“每个价格”列类型?这可能是由于列类型“str”所致。

如果是这种情况,你可以像这样转换每一列的类型:

df['Quantity Ordered'] = df['Quantity Ordered'].astype('int')
df['Price Each'] = df['Price Each'].astype('float')

【讨论】:

【参考方案2】:

我管理的

df ['Quantity Ordered'] = pd.to_numeric(df['Quantity Ordered'])
df ['Price Each'] = pd.to_numeric(df['Price Each'])

【讨论】:

以上是关于TypeError:不能将序列乘以“str”类型的非整数 - 将两列相乘后的主要内容,如果未能解决你的问题,请参考以下文章

不能在乘法数组和 e-6 中将序列乘以“float”类型的非整数 [重复]

不能将序列乘以“浮点”类型的非整数

如何解决错误“不能将序列乘以'float'类型的非整数”?

不能将序列乘以“浮点”类型的非整数

python中的DES加密错误(TypeError:对象类型<class'str'>不能传递给C代码)

PySpark:TypeError:StructType 不能接受类型为 <type 'unicode'> 或 <type 'str'> 的对象