gpt4 book ai didi

python - 使用pd.read_excel读取多页xlsx时如何将列值转换为str?

转载 作者:行者123 更新时间:2023-12-04 20:23:22 26 4
gpt4 key购买 nike

我有一张多页纸xlsx我要处理选定页面并最终将它们保存为 CSV 的文件.
这是来自一页的一些原始数据的快照:
enter image description here
我使用此代码加载所有页面并逐个处理每个页面:

def load_raw_excel_file(file_full_name):

df = pd.read_excel(file_full_name, sheet_name=None, engine="openpyxl", header=0)
sheets_name = list(df.keys())

return df, sheets_name
代码的输出(来自同一页面)如下所示:
dfs, shs =  load_raw_excel_file("myexelfile.xlsx")
dfs['myselectedsheetname']
enter image description here
如您所见, Contract 中的一些值列已更改为日期,但我不想要任何更改。
我试过使用 convertorsdtypepd.read_excel ,但它没有用:
df = pd.read_excel(file_full_name, sheet_name=None, engine="openpyxl", header=0, dtype=str)
或者
df = pd.read_excel("myexelfile.xlsx", sheet_name='selectedsheetname', header=0, converters={'Contract':str})
任何想法?
更新
我找到了一种解决方法,但不是一个好的解决方案:
def convert_str_date(x):

try:
y = x.strftime("%b-%y")
return y
except:
return x


df.Contract.apply(lambda x : convert_str_date(x))
另外,请参阅@Simon 回答

最佳答案

excel将这些值设置为日期时间格式。也许您可以对数据框进行后处理,

nKCol = df['Contract']                                            
oKCol = df['Contract'].copy()

# update cell to %b-%y string format; Nan if error
nKCol = pd.to_datetime(nKCol, errors='coerce').dt.strftime('%b-%y')

# update the column
df['Contract'] = nKCol

# fill Nan with original column
df['Contract'] = df['Contract'].fillna(oKCol)

关于python - 使用pd.read_excel读取多页xlsx时如何将列值转换为str?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66791588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com