返回
Pandas数据处理之函数使用剖析(下)
人工智能
2023-09-23 01:02:00
Pandas 数据操作和转换:揭秘强大的数据处理工具
数据类型转换
Pandas 为数据类型转换提供了灵活的选择。astype()
函数可将列转换为指定的数据类型,如:
df['column_name'] = df['column_name'].astype('int64')
convert_dtypes()
自动转换所有列为最合适的数据类型:
df = df.convert_dtypes()
to_numeric()
将字符串列转换为数字列:
df['column_name'] = df['column_name'].to_numeric()
数据清洗
Pandas 提供了强大的数据清洗工具。dropna()
删除包含缺失值的行:
df = df.dropna()
fillna()
用指定值填充缺失值:
df = df.fillna(0)
duplicated()
查找重复行:
df = df[~df.duplicated()]
unique()
查找唯一值:
unique_values = df['column_name'].unique()
数据转换
Pandas 提供了多种数据转换功能。map()
将列中的值映射到新值:
df['column_name'] = df['column_name'].map({'A': 'Yes', 'B': 'No'})
replace()
替换列中的值:
df['column_name'] = df['column_name'].replace('A', 'Yes')
apply()
应用函数到每一行或列:
df['column_name'] = df['column_name'].apply(lambda x: x * 2)
数据聚合
Pandas 提供了丰富的聚合函数。sum()
计算列中值的总和:
total_sales = df['sales'].sum()
mean()
计算平均值:
average_sales = df['sales'].mean()
median()
计算中位数:
median_sales = df['sales'].median()
max()
计算最大值:
max_sales = df['sales'].max()
数据分组
groupby()
函数根据列分组数据:
df_grouped = df.groupby('column_name')
分组后,可使用聚合函数聚合组中数据:
df_grouped['sales'].sum()
示例代码
# 导入 Pandas
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({
'name': ['John', 'Mary', 'Bob'],
'age': [20, 25, 30],
'city': ['New York', 'London', 'Paris']
})
# 将 'age' 列转换为整型
df['age'] = df['age'].astype('int64')
# 用 'Unknown' 填充 'city' 列中的缺失值
df = df.fillna({'city': 'Unknown'})
# 查找并删除重复行
df = df[~df.duplicated()]
# 将 'city' 列中的 'New York' 替换为 'NYC'
df['city'] = df['city'].replace('New York', 'NYC')
# 计算 'age' 列的平均值
average_age = df['age'].mean()
# 按 'city' 列对 DataFrame 进行分组
df_grouped = df.groupby('city')
# 计算每个城市中年龄的总和
total_age_by_city = df_grouped['age'].sum()
# 打印结果
print(df)
print('平均年龄:', average_age)
print('按城市分组的年龄总和:\n', total_age_by_city)
结论
Pandas 丰富的函数和灵活性使其成为数据操作和转换的强大工具。从数据类型转换到数据聚合和分组,掌握这些功能将极大地提高您的数据处理效率。
常见问题解答
-
Pandas 中有哪些不同的数据类型转换函数?
astype()
、convert_dtypes()
和to_numeric()
。
-
如何用 Pandas 清理数据?
- 使用
dropna()
、fillna()
、duplicated()
和unique()
函数。
- 使用
-
Pandas 中有哪些数据转换函数?
map()
、replace()
和apply()
。
-
如何用 Pandas 聚合数据?
- 使用
sum()
、mean()
、median()
和max()
等聚合函数。
- 使用
-
什么是数据分组?
- 使用
groupby()
函数根据列对数据进行分组,以便对分组中的数据进行聚合。
- 使用