You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Pandas完整显示大型数据集?解决输出缺失行问题

问题描述

我正在处理一个超过十万行的大型Excel数据集,其中日期(格式如20231201)和时间(格式如1130)未按标准格式拆分。我已经编写了Pandas代码对日期和时间进行格式化,方便复制粘贴回Excel,但输出时始终缺失前3万行,请问是否可以设置无限输出层级?

原有代码

时间格式化代码

#this is the code for hours
import pandas as pd

df = pd.read_excel('/Volumes/PortableSSD/Università - Lavori/Progetto statistica/Definitivo 1223.xlsx')

df['Scheduled departure'] = df['Scheduled departure'].astype(str)

df['formatted_hour'] = df['Scheduled departure'].apply(lambda x: '{:0>4}'.format(x))

df['formatted_hour'] = df['formatted_hour'].apply(lambda x: f"{x[:2]}:{x[2:]}")

# Display the formatted time
print(df['formatted_hour'].to_string(index=True))

日期格式化代码

#this is the code for dates
import pandas as pd

df = pd.read_excel('/Volumes/PortableSSD/Università - Lavori/Progetto statistica/Definitivo 1223.xlsx')

df['Date'] = df['Date'].astype(str)
df['year'] = df['Date'].str[:4]
df['month'] = df['Date'].str[4:6]
df['day'] = df['Date'].str[6:]

df['formatted_date'] = df['Date'].str[6:] + '/' + df['Date'].str[4:6] + '/' + df['Date'].str[:4]

# Display the formatted date
print(df['formatted_date'].to_string(index=False))
解决方案

Pandas默认会限制控制台输出的行数,这就是你看不到全部数据的原因。可以通过以下方式解决:

1. 取消Pandas输出行数限制

在代码开头添加配置,让Pandas显示所有行:

import pandas as pd
# 设置显示所有行
pd.set_option('display.max_rows', None)
# 若需要显示所有列,可添加
pd.set_option('display.max_columns', None)

将这段配置加入你原有的代码中,再执行print输出,就能看到完整的十万行数据了。

2. 优化代码(更高效处理大数据集)

原代码用apply循环处理每行数据,效率较低,推荐用Pandas的矢量化字符串操作替代,速度更快:

优化后的时间格式化代码

import pandas as pd

pd.set_option('display.max_rows', None)

df = pd.read_excel('/Volumes/PortableSSD/Università - Lavori/Progetto statistica/Definitivo 1223.xlsx')

# 转字符串后补前导零到4位,再用正则分割为小时:分钟
df['formatted_hour'] = df['Scheduled departure'].astype(str).str.zfill(4).str.replace(r'(\d{2})(\d{2})', r'\1:\2', regex=True)

# 输出所有行
print(df['formatted_hour'].to_string(index=True))

优化后的日期格式化代码

import pandas as pd

pd.set_option('display.max_rows', None)

df = pd.read_excel('/Volumes/PortableSSD/Università - Lavori/Progetto statistica/Definitivo 1223.xlsx')

# 方法1:正则替换直接格式化
df['formatted_date'] = df['Date'].astype(str).str.replace(r'(\d{4})(\d{2})(\d{2})', r'\3/\2/\1', regex=True)

# 方法2:转换为日期类型后格式化(更规范,能自动校验日期合法性)
# df['formatted_date'] = pd.to_datetime(df['Date'].astype(str), format='%Y%m%d').dt.strftime('%d/%m/%Y')

# 输出所有行
print(df['formatted_date'].to_string(index=False))

3. 更可靠的替代方案:直接导出到Excel

如果你的目的是把格式化后的数据导回Excel,完全没必要用print输出(控制台本身也可能有输出长度限制),直接用Pandas导出到新Excel文件更稳妥:

import pandas as pd

df = pd.read_excel('/Volumes/PortableSSD/Università - Lavori/Progetto statistica/Definitivo 1223.xlsx')

# 处理时间列
df['formatted_hour'] = df['Scheduled departure'].astype(str).str.zfill(4).str.replace(r'(\d{2})(\d{2})', r'\1:\2', regex=True)
# 处理日期列(用规范的日期转换方法)
df['formatted_date'] = pd.to_datetime(df['Date'].astype(str), format='%Y%m%d').dt.strftime('%d/%m/%Y')

# 导出格式化后的列到新Excel文件
df[['formatted_date', 'formatted_hour']].to_excel('/Volumes/PortableSSD/Università - Lavori/Progetto statistica/Formatted_Data.xlsx', index=False)

内容的提问来源于stack exchange,提问作者Francesco Di Napoli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:17:15