用熊猫处理重复数据

时间:2019-11-18 21:49:42

标签: python-3.x pandas dataframe unique

大家好,我在使用pandas python库时遇到了一些问题。基本上我在读csv  熊猫文件,并希望删除重复项。我已经尝试了一切,问题仍然存在。

import sqlite3
import pandas as pd
import numpy
connection = sqlite3.connect("test.db")

## pandas dataframe
dataframe = pd.read_csv('Countries.csv')
##dataframe.head(3)

countries = dataframe.loc[:, ['Retailer country', 'Continent']] 

countries.head(6)

其输出将是:

 Retailer country Continent
-----------------------------
0 United States    North America
1 Canada           North America
2 Japan                    Asia
3 Italy                   Europe
4 Canada           North America
5 United States    North America
6 France                  Europe

我希望能够根据来自的列删除重复的值 上面的一个数据框,这样我就可以从每个国家和大陆获得像这样的独特价值 这样所需的输出将是:

 Retailer country Continent
-----------------------------
0 United States    North America
1 Canada           North America
2 Japan                    Asia
3 Italy                   Europe
4 France                  Europe

我尝试了其中提到的一些方法:Using pandas for duplicate values,环顾四周,意识到可以使用df.drop_duplicates()函数,但是当我使用下面的代码和df.head(3)函数时,它将显示只有一行。我该怎么做才能获得那些唯一的行并最终遍历它们?

countries.head(4)
country = countries['Retailer country']
continent = countries['Continent']
df = pd.DataFrame({'a':[country], 'b':[continent]})
df.head(3)

1 个答案:

答案 0 :(得分:1)

似乎一个简单的分组方式可以解决您的问题。

import pandas as pd
na = 'North America'
a = 'Asia'
e = 'Europe'
df = pd.DataFrame({'Retailer': [0, 1, 2, 3, 4, 5, 6],
                   'country': ['Unitied States', 'Canada', 'Japan', 'Italy', 'Canada', 'Unitied States', 'France'],
                   'continent': [na, na, a, e, na, na, e]})

df.groupby(['country', 'continent']).agg('count').reset_index()

Dataframe after group by

Retailer列现在显示发生countrycontinent组合的次数。您可以通过df = df [[''country','continent']]删除它。