将Pandas中csv列的最后4个字符切片

46qrfjad  于 2023-02-07  发布在  其他
关注(0)|答案(1)|浏览(142)

我刚接触Python不久,我尝试从CSV文件的列中获取每行数据的最后四个字符。例如,我有一个代表大量牌照的列E。我能够成功地从CSV文件中获取该列,并将其写入xlsx文件中的适当位置。我尝试过用不同的方法对该列进行切片。但我似乎不能得到它的权利。要么我只得到了前4个牌照在列表中或没有得到最后四个字符从每个牌照。下面是代码我现在只显示前四个从列表中。
任何帮助都将不胜感激。先谢了。

import pandas as pd

df_csv = pd.read_csv('data.csv', usecols=['license_plate'])
df_xlsx = pd.read_excel('report.xlsx', header=None)

license_plate = df_csv['license_plate']
license_plate = license_plate[-4:]

writer = pd.ExcelWriter('report.xlsx', engine='openpyxl', mode='a', if_sheet_exists='overlay')

license_plate.to_excel(writer, sheet_name='Report', startcol=8, startrow=3, header=None, index=None)

writer.close()

我知道这部分代码有些地方需要修改,但是在查看并尝试了不同的方法后,我似乎无法得到正确的输出。下面是我的代码,只显示了前4个车牌的完整内容。

license_plate = df_csv['license_plate']
license_plate = license_plate[-4:]

举个例子,如果我有一整列车牌,前3个车牌是:['123456',' ABCDEF ',['1A2B3C'] ......等等。输出应在excel工作表中打印为“3456”(第一行)、“CDEF”(第二行)、“2B3C”(第三行),依此类推,直到完成列表。

mrfwxfqh

mrfwxfqh1#

对数据集的牌照列中的每个条目使用str.slice函数,您将得到所需的结果。

import pandas as pd
from openpyxl import load_workbook

df_csv = pd.read_csv('data.csv', usecols=['license_plate'])
df_xlsx = pd.read_excel('report.xlsx', header=None)

df_csv['license_plate'] = df_csv['license_plate'].str[-4:]

writer = pd.ExcelWriter('report.xlsx', engine='openpyxl', mode='a', if_sheet_exists='overlay')
wb = load_workbook('report.xlsx')

df_csv['license_plate'].to_excel(writer, sheet_name='Report', startcol=8, startrow=3, header=None, index=None)

writer.close()

使用此代码对车牌列中的每个条目应用str.slice函数,保留最后四个字符,之后将修改后的数据写入excel工作表。

相关问题