鱼C论坛

 找回密码
 立即注册
查看: 1177|回复: 3

提取数据

[复制链接]
发表于 2023-8-30 16:23:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已知Starting year.xlsx中c列为开始时间,内容格式为1959-1-0,利用Python遍历Starting year.xlsx去掉开始年份 1970 年以后的站点。
import pandas as pd

# 读取Starting year.xlsx文件
df = pd.read_excel('Starting year.xlsx')

# 将c列转换为日期格式
df['c'] = pd.to_datetime(df['c'], format='%Y-%m-%d', errors='coerce')

# 过滤出开始时间在1970年以前的站点
df_filtered = df[df['c'].dt.year > 1970]

# 将结果保存到新的Excel文件中
df_filtered.to_excel('Starting year_filtered.xlsx', index=False)
运行结束后为何表中无内容,已检查原文件无缺值,读取输出路径无误。该如何修改?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-30 16:24:05 | 显示全部楼层
在代码中,你使用了 df[df['c'].dt.year > 1970] 来过滤出开始时间在1970年以前的站点。然而,由于你的开始时间是以年为单位进行过滤的,所以这个条件会导致所有的站点都被过滤掉,因为 1970年 被视为 1970年以后 。

要解决这个问题,你可以将条件修改为 df['c'].dt.year < 1970 ,这样就可以过滤出开始时间在1970年以前的站点。

以下是修改后的代码:
import pandas as pd

# 读取Starting year.xlsx文件
df = pd.read_excel('Starting year.xlsx')

# 将c列转换为日期格式
df['c'] = pd.to_datetime(df['c'], format='%Y-%m-%d', errors='coerce')

# 过滤出开始时间在1970年以前的站点
df_filtered = df[df['c'].dt.year < 1970]

# 将结果保存到新的Excel文件中
df_filtered.to_excel('Starting year_filtered.xlsx', index=False)

运行修改后的代码后,你将会得到开始时间在1970年以前的站点,并将结果保存到 Starting year_filtered.xlsx 文件中。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-30 16:34:46 | 显示全部楼层
isdkz 发表于 2023-8-30 16:24
在代码中,你使用了 df[df['c'].dt.year > 1970] 来过滤出开始时间在1970年以前的站点。然而,由于你的开始 ...

为何表内依旧无内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-30 20:14:59 | 显示全部楼层
你应该把相应的附件上传。
有些问题看代码不一定看得到问题,还需要根据实际情况调试。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-6 08:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表