我正在从网站上抓取表格,并将其放入 Excel 文件中。我的目标是以正确的方式将一列拆分为两列。
我想要拆分的列:“FLIGHT”
我想要这个表格:
第一个例子:KL744 –> KL 和 0744
第二个示例:BE1013 –> BE 和 1013
因此,我需要将前 2 个字符(在第一列)分开,然后是接下来的 1-2-3-4 个字符。如果是 4 个字符,则保留它;如果是 3 个字符,则我想在它前面放一个 0;如果是 2 个字符,则我想在它前面放一个 00(因此我的目标是在第二列中得到 4 个字符/数字。)
我怎样才能做到这一点?
这是我的相关代码,其中已经包含格式化代码。
df2 = pd.DataFrame(datatable,columns = cols) df2["UPLOAD_TIME"] = datetime.now() mask = np.column_stack([df2[col].astype(str).str.contains(r"Scheduled", na=True) for col in df2]) df3 = df2.loc[~mask.any(axis=1)] if os.path.isfile("output.csv"): df1 = pd.read_csv("output.csv", sep=";") df4 = pd.concat([df1,df3]) df4.to_csv("output.csv", index=False, sep=";") else: df3.to_csv df3.to_csv("output.csv", index=False, sep=";")
你可以通过以下步骤拆分“FLIGHT”列,并根据你的需求调整格式:
下面是你可以用来实现该功能的代码:
import pandas as pd import numpy as np # 示例数据 data = {'FLIGHT': ['KL744', 'BE1013', 'LH123', 'AF56']} df2 = pd.DataFrame(data) # 拆分FLIGHT列 df2['AIRLINE'] = df2['FLIGHT'].str[:2] # 提取前两个字符 (航空公司代码) df2['FLIGHT_NUMBER'] = df2['FLIGHT'].str[2:].str.zfill(4) # 提取剩下的字符并补充前导零 # 显示结果 print(df2)
df2['AIRLINE'] = df2['FLIGHT'].str[:2]
df2['FLIGHT_NUMBER'] = df2['FLIGHT'].str[2:].str.zfill(4)
zfill(4)
FLIGHT AIRLINE FLIGHT_NUMBER 0 KL744 KL 0744 1 BE1013 BE 1013 2 LH123 LH 0123 3 AF56 AF 0056
假设你已经有 df2 作为你的 DataFrame,你可以将上述拆分步骤放在代码中,确保数据按要求进行格式化:
df2
# 假设 df2 已经存在并包含 'FLIGHT' 列 df2['AIRLINE'] = df2['FLIGHT'].str[:2] df2['FLIGHT_NUMBER'] = df2['FLIGHT'].str[2:].str.zfill(4) # 如果你要将其保存到 output.csv 文件中 if os.path.isfile("output.csv"): df1 = pd.read_csv("output.csv", sep=";") df4 = pd.concat([df1, df2]) # 合并数据 df4.to_csv("output.csv", index=False, sep=";") else: df2.to_csv("output.csv", index=False, sep=";")
这样,你就可以按照要求拆分“FLIGHT”列并将其保存为新的 CSV 文件。如果有任何其他问题,随时告诉我!