ZetCode

Pandas 列格式化

最后修改时间:2025年3月1日

Pandas 是一个强大的 Python 数据操作库。在处理 DataFrame 时,格式化列是一项常见任务。本教程将通过实际示例介绍如何使用 Pandas 格式化列。

格式化列可以提高可读性和展示效果。Pandas 提供了 applymapstyle 等方法来进行列格式化。这些方法非常灵活,支持自定义格式。

将数字格式化为货币

此示例展示如何将数字格式化为货币。

format_currency.py
import pandas as pd

data = {
    'Product': ['A', 'B', 'C'],
    'Price': [100.5, 200.75, 300.25]
}

df = pd.DataFrame(data)
df['Price'] = df['Price'].map('${:,.2f}'.format)

print(df)

map('${:,.2f}'.format) 方法将“Price”列格式化为带有两位小数的货币。这对于金融数据非常有用。

格式化日期

此示例演示了格式化日期列。

format_dates.py
import pandas as pd

data = {
    'Event': ['Meeting', 'Conference', 'Workshop'],
    'Date': ['2023-10-01', '2023-11-15', '2023-12-20']
}

df = pd.DataFrame(data)
df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%d-%m-%Y')

print(df)

dt.strftime('%d-%m-%Y') 方法将“Date”列格式化为“DD-MM-YYYY”。这对于标准化日期格式非常有用。

格式化百分比

此示例展示了如何将数字格式化为百分比。

format_percentages.py
import pandas as pd

data = {
    'Category': ['A', 'B', 'C'],
    'Growth': [0.15, 0.25, 0.35]
}

df = pd.DataFrame(data)
df['Growth'] = df['Growth'].map('{:.2%}'.format)

print(df)

map('{:.2%}'.format) 方法将“Growth”列格式化为带有两位小数的百分比。这对于增长指标非常有用。

格式化大数字

此示例演示了如何为大数字添加千位分隔符。

format_large_numbers.py
import pandas as pd

data = {
    'City': ['New York', 'Los Angeles', 'Chicago'],
    'Population': [8419000, 3971000, 2716000]
}

df = pd.DataFrame(data)
df['Population'] = df['Population'].map('{:,}'.format)

print(df)

map('{:,}'.format) 方法为“Population”列添加了千位分隔符。这提高了大数字的可读性。

将文本格式化为大写

此示例展示了如何将文本列格式化为大写。

format_uppercase.py
import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Role': ['Manager', 'Developer', 'Designer']
}

df = pd.DataFrame(data)
df['Role'] = df['Role'].str.upper()

print(df)

str.upper 方法将“Role”列转换为大写。这对于标准化文本数据非常有用。

使用条件样式进行格式化

此示例演示了使用 style API 进行条件格式化。

format_conditional.py
import pandas as pd

data = {
    'Product': ['A', 'B', 'C'],
    'Sales': [1000, 1500, 800]
}

df = pd.DataFrame(data)

def highlight_low_sales(val):
    color = 'red' if val < 1000 else 'black'
    return f'color: {color}'

styled_df = df.style.applymap(highlight_low_sales, subset=['Sales'])

print(styled_df)

style.applymap 方法将条件格式化应用于“Sales”列。销量低于 1000 的部分会以红色突出显示。这对于数据可视化非常有用。

使用自定义函数进行格式化

此示例展示了如何使用自定义函数进行格式化。

format_custom.py
import pandas as pd

data = {
    'Product': ['A', 'B', 'C'],
    'Price': [100.5, 200.75, 300.25]
}

df = pd.DataFrame(data)

def format_price(price):
    return f'Price: ${price:.2f}'

df['Price'] = df['Price'].apply(format_price)

print(df)

apply(format_price) 方法应用自定义函数来格式化“Price”列。这允许进行灵活且可重用的格式化。

列格式化的最佳实践

来源

Pandas 样式文档

在本文中,我们探讨了如何在 Pandas DataFrame 中格式化列。

作者

我的名字是 Jan Bodnar,我是一名充满热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

所有 Pandas 教程列表。