|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
.批量将txt文档转化为excel文件,excel文件命名只保留数字。
.添加excel文件表头,年,月,日,降水(保留一位小数)。
.如果降水出现负值和-999,替换为0。
import pandas as pd
import os
# 获取当前文件夹下所有txt文件
txt_files = [f for f in os.listdir('.') if f.endswith('.txt')]
for txt_file in txt_files:
# 读取txt文件
df = pd.read_csv(txt_file, sep='\t', header=None, names=['date', 'precipitation'])
# 将日期拆分为年、月、日
df[['year', 'month', 'day']] = df['date'].str.split('-', expand=True)
# 替换负值和-999为0
df.loc[(df['precipitation'] < 0) | (df['precipitation'] == -999), 'precipitation'] = 0
# 保留一位小数
df['precipitation'] = df['precipitation'].round(1)
# 生成excel文件,文件名只保留数字
excel_file_name = ''.join(filter(str.isdigit, txt_file)) + '.xlsx'
df.to_excel(excel_file_name, index=False, columns=['year', 'month', 'day', 'precipitation'])
为什么可运行但是无结果
import pandas as pd
import os
input_dir = "input" # 输入目录
output_dir = "output" # 输出目录
for file_name in input_files:
# 读取txt文件并转换为DataFrame
file_path = os.path.join(input_dir, file_name)
df = pd.read_csv(file_path, sep="\t", header=None, names=["date", "precipitation"])
# 添加年、月、日列
df["year"] = df["date"].apply(lambda x: int(str(x)[:4]))
df["month"] = df["date"].apply(lambda x: int(str(x)[4:6]) if not str(x)[4:6].isspace() else 0)
df["day"] = df["date"].apply(lambda x: int(str(x)[6:]))
# 删除原日期列
df = df.drop("date", axis=1)
# 替换无效值
df = df.replace(-999, 0)
df = df[df["precipitation"] >= 0]
# 保留一位小数
df["precipitation"] = round(df["precipitation"], 1)
# 保存为Excel文件
output_file_name = "".join(filter(str.isdigit, file_name)) + ".xlsx"
output_file_path = os.path.join(output_dir, output_file_name)
df.to_excel(output_file_path, index=False)
为何添加年月日出错
|
|