Pandas 列格式化
最后修改时间:2025年3月1日
Pandas 是一个强大的 Python 数据操作库。在处理 DataFrame 时,格式化列是一项常见任务。本教程将通过实际示例介绍如何使用 Pandas 格式化列。
格式化列可以提高可读性和展示效果。Pandas 提供了 apply
、map
和 style
等方法来进行列格式化。这些方法非常灵活,支持自定义格式。
将数字格式化为货币
此示例展示如何将数字格式化为货币。
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”列格式化为带有两位小数的货币。这对于金融数据非常有用。
格式化日期
此示例演示了格式化日期列。
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”。这对于标准化日期格式非常有用。
格式化百分比
此示例展示了如何将数字格式化为百分比。
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”列格式化为带有两位小数的百分比。这对于增长指标非常有用。
格式化大数字
此示例演示了如何为大数字添加千位分隔符。
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”列添加了千位分隔符。这提高了大数字的可读性。
将文本格式化为大写
此示例展示了如何将文本列格式化为大写。
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 进行条件格式化。
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 的部分会以红色突出显示。这对于数据可视化非常有用。
使用自定义函数进行格式化
此示例展示了如何使用自定义函数进行格式化。
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”列。这允许进行灵活且可重用的格式化。
列格式化的最佳实践
- 理解数据:在格式化之前分析数据类型和需求。
- 使用适当的方法:根据需要选择
map
、apply
或style
等方法。 - 保持数据完整性:确保格式化不会更改底层数据。
- 验证结果:检查格式化后的数据是否一致和准确。
来源
在本文中,我们探讨了如何在 Pandas DataFrame 中格式化列。
作者
所有 Pandas 教程列表。