Python 当值位于数据类型对象中时查找总和
我对熊猫和数据帧很陌生。我试图找到给定制造商(“制造商”=“奥迪”)所有产品(“产品”)的总收入(“tot_收入”)。换句话说,我想计算“奥迪”的“总收入” 一个问题是,在“total_income”列的每个单元格中,值都带有美元符号($100000),因此.sum方法不起作用,因为数据类型是object 这是我最好的尝试,它给了我错误信息: “TypeError:只能将str(而不是“int”)连接到str”Python 当值位于数据类型对象中时查找总和,python,pandas,dataframe,Python,Pandas,Dataframe,我对熊猫和数据帧很陌生。我试图找到给定制造商(“制造商”=“奥迪”)所有产品(“产品”)的总收入(“tot_收入”)。换句话说,我想计算“奥迪”的“总收入” 一个问题是,在“total_income”列的每个单元格中,值都带有美元符号($100000),因此.sum方法不起作用,因为数据类型是object 这是我最好的尝试,它给了我错误信息: “TypeError:只能将str(而不是“int”)连接到str” 您应该首先清理数据。使用类似 df.total_income = df.total_
您应该首先清理数据。使用类似
df.total_income = df.total_income.map(lambda price:int(price[1:]))
将行编辑为整数。这需要在每个价格的第一个符号后有一个整数
import pandas as pd
df_data = {'manufacturer': ['audi', 'maly_rysiu_bez_zebow', 'maly_rysiu_bez_zebow'],'price': ['$1000', '$2000', '$400000']}
df = pd.DataFrame(df_data)
df['price'] = df['price'].str.slice(1).astype(float)
df.loc[df['manufacturer'] == 'maly_rysiu_bez_zebow']['price'].sum()
用于删除$符号
用于将其从字符串更改为浮点,以便对数字执行求和操作。您可以删除
$
并转换为数字:
df['total_income'] = df['total_income'].str.replace('\$', '').astype(float)
第一步:您需要将总收入中的所有值更改为int或float: INT:
for i in range(len(df)):
df['total_income'][i] = int(df['total_income'][i][1:])
for i in range(len(df)):
df['total_income'][i] = float(df['total_income'][i][1:])
浮动:
for i in range(len(df)):
df['total_income'][i] = int(df['total_income'][i][1:])
for i in range(len(df)):
df['total_income'][i] = float(df['total_income'][i][1:])
第二步:之后可以使用.sum()