Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当值位于数据类型对象中时查找总和_Python_Pandas_Dataframe - Fatal编程技术网

Python 当值位于数据类型对象中时查找总和

Python 当值位于数据类型对象中时查找总和,python,pandas,dataframe,Python,Pandas,Dataframe,我对熊猫和数据帧很陌生。我试图找到给定制造商(“制造商”=“奥迪”)所有产品(“产品”)的总收入(“tot_收入”)。换句话说,我想计算“奥迪”的“总收入” 一个问题是,在“total_income”列的每个单元格中,值都带有美元符号($100000),因此.sum方法不起作用,因为数据类型是object 这是我最好的尝试,它给了我错误信息: “TypeError:只能将str(而不是“int”)连接到str” 您应该首先清理数据。使用类似 df.total_income = df.total_

我对熊猫和数据帧很陌生。我试图找到给定制造商(“制造商”=“奥迪”)所有产品(“产品”)的总收入(“tot_收入”)。换句话说,我想计算“奥迪”的“总收入”

一个问题是,在“total_income”列的每个单元格中,值都带有美元符号($100000),因此.sum方法不起作用,因为数据类型是object

这是我最好的尝试,它给了我错误信息: “TypeError:只能将str(而不是“int”)连接到str”


您应该首先清理数据。使用类似

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()