TypeError: can't multiply sequence by non-int of type 'str' - after multiplying two columns

TypeError: can't multiply sequence by non-int of type 'str' - after multiplying two columns

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

我正在尝试将结果放入新列(称为 Sum)中:'Quantity Ordered' 乘以 'Price Each'。

我收到错误: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)

您是否检查了 'Quantity Ordered' 和 'Price each' 列类型?这可能是由于列类型 'str'.

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

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

我管理

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