📅  最后修改于: 2023-12-03 15:26:35.744000             🧑  作者: Mango
在数据处理中,有时候需要找出 dataframe 中的独特元素并与其他列进行比较和分析。在 pandas 中,我们可以使用 unique()
方法来查找唯一值,并使用 value_counts()
方法来计算每个唯一值出现的次数。
假设我们有一个包含姓名、年龄、性别和国家信息的 dataframe:
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily', 'Frank'],
'age': [25, 30, 20, 35, 27, 28],
'gender': ['F', 'M', 'M', 'M', 'F', 'M'],
'country': ['USA', 'Canada', 'USA', 'UK', 'Canada', 'UK']
}
df = pd.DataFrame(data)
使用 unique()
方法可以查找出每个列中的独特元素:
# 查找姓名列中的独特元素
unique_names = df['name'].unique()
print(unique_names)
# 查找国家列中的独特元素
unique_countries = df['country'].unique()
print(unique_countries)
输出结果为:
['Alice' 'Bob' 'Charlie' 'David' 'Emily' 'Frank']
['USA' 'Canada' 'UK']
在实际数据处理中,有时候我们需要同时查找多个列中的独特元素。这时候我们可以使用 pd.unique(df[['col1', 'col2', ...]])
来完成操作。
使用 value_counts()
方法可以计算出每个唯一值在列中出现的次数:
# 计算每个国家出现的次数
country_counts = df['country'].value_counts()
print(country_counts)
输出结果为:
USA 2
Canada 2
UK 2
Name: country, dtype: int64
有时候我们需要将唯一值与其他列进行比较,来找出不同列之间的联系。例如,假设我们需要找出哪些年龄与国家有关联:
# 找出不同年龄对应的国家
age_country = df[['age', 'country']]
print(age_country)
输出结果为:
age country
0 25 USA
1 30 Canada
2 20 USA
3 35 UK
4 27 Canada
5 28 UK
我们可以使用 groupby()
方法来对 age_country
数据进行分组,并统计每个分组中不同国家出现的次数:
# 统计每个年龄对应的国家出现的次数
age_country_count = age_country.groupby(['age', 'country']).size().reset_index(name='count')
print(age_country_count)
输出结果为:
age country count
0 20 USA 1
1 25 USA 1
2 27 Canada 1
3 28 UK 1
4 30 Canada 1
5 35 UK 1
在本文中,我们学习了如何在 pandas 中查找 dataframe 中的独特元素,并使用 value_counts()
方法计算每个唯一值出现的次数。我们还学习了如何使用 groupby()
方法与其他列进行比较,来找出不同列之间的联系。这些操作在实际数据处理中非常有用,为我们提供了更多的数据维度和处理方式。