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'])
我是 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'])