返回

Pandas数据处理之函数使用剖析(下)

人工智能

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 丰富的函数和灵活性使其成为数据操作和转换的强大工具。从数据类型转换到数据聚合和分组,掌握这些功能将极大地提高您的数据处理效率。

常见问题解答

  1. Pandas 中有哪些不同的数据类型转换函数?

    • astype()convert_dtypes()to_numeric()
  2. 如何用 Pandas 清理数据?

    • 使用 dropna()fillna()duplicated()unique() 函数。
  3. Pandas 中有哪些数据转换函数?

    • map()replace()apply()
  4. 如何用 Pandas 聚合数据?

    • 使用 sum()mean()median()max() 等聚合函数。
  5. 什么是数据分组?

    • 使用 groupby() 函数根据列对数据进行分组,以便对分组中的数据进行聚合。