Pandas是Python中一个强大的数据分析库,它提供了灵活且可靠的数据处理功能。无论是数据分析师还是爱好者,都能通过Pandas的丰富函数库来简化数据分析工作。本文将探讨一些实用的Pandas函数和技巧,并提供示例代码。这些内容将有助于丰富数据分析工具箱,即使是Pandas的新手,也能从中获益。
在介绍这些函数之前,首先使用Kaggle的泰坦尼克号数据集来创建一个数据框架。可以通过以下链接下载数据集:。当然,也可以使用任何开源数据集进行实践。
Pandas的unique
函数可以返回列中所有不重复的元素列表,包括NA值。这对于检查分类字段中的不同值非常有用。例如:
data['Embarked'].unique()
输出结果为:
array(['S', 'C', 'Q', nan], dtype=object)
nunique
函数则用于计算列中不同值的数量,忽略NaN值。这可以帮助了解数据集中某个字段的不同类别数量。例如:
data['Embarked'].nunique()
输出结果为:3
describe
函数可以显示数据的描述性统计信息,如均值、标准差、最大值、最小值等。这有助于了解数据的分布情况和异常值。例如:
data.describe()
输出结果将展示每个数值列的统计信息。
sort_values
函数可以根据列的值对数据进行排序。可以根据需要对数据进行升序或降序排列。例如:
data.sort_values(by=['Age', 'Pclass'], ascending=[False, True])
或者对单个列进行排序:
data.sort_values(by='Age', ascending=False)
value_counts
函数返回列中每个唯一项的计数。默认情况下,计数结果按降序排列,最频繁的元素排在最前面。例如,可以这样查看不同舱位中男性和女性的数量:
data[['Pclass', 'Sex']].value_counts()
isnull
函数用于检查数据中的缺失值。它返回一个布尔值数组,表示是否有缺失值。例如,可以这样检查数据集中每列的缺失值:
for col in data.columns:
if data[col].isnull().sum() > 0:
total_null = data[col].isnull().sum()
print('Column {} has total null {}, i.e. {} %'.format(col, total_null, round(total_null * 100 / len(data), 2)))
fillna
函数用于根据指定的方法填充缺失值。例如,可以使用中位数来填充“Age”字段的缺失值:
data['Age'].fillna(value=data['Age'].median(), inplace=True)
填充后,可以检查“Age”字段是否还有缺失值:
data['Age'].isnull().sum()
输出结果为:0
groupby
函数用于将数据分组,并对其应用函数,最后将结果合并为一个新的对象。例如,可以这样查看每个性别的年龄最大值、最小值、平均值和中位数:
data.groupby(['Sex'])['Age'].agg(['max', 'min', 'mean', 'median'])
gender = {'male': 1, 'female': 0}
data['Sex'].map(gender)
df = pd.DataFrame({'Name': ['X', 'Y', 'Z'], 'Marks': [150, 120, 175]})
def percentage_marks(x):
return x / 2
df['Marks'].apply(percentage_marks)
df = pd.DataFrame({'Class': ['1st', '2nd', '3rd', '1st', '2nd', '3rd'], 'Section': ['A', 'A', 'A', 'B', 'B', 'B'], 'Gr': [1, 2, 3, 4, 5, 6]})
df.pivot(index='Class', columns='Section', values='Gr')