Python / glob glob - 在导入期间更改数据类型
Python / glob glob - change datatype during import
我正在遍历文件夹中的所有 excel 文件并将它们附加到数据框。一列(C 列)有一个 ID 号。在某些工作表中,ID 被格式化为文本,而在其他工作表中,它被格式化为数字。在导入期间或之后更改数据类型以使数据类型保持一致的最佳方法是什么?我总是可以在导入之前在每个 excel 文件中更改它们,但有 40 多张纸。
for f in glob.glob(path):
dftemp = pd.read_excel(f,sheetname=0,skiprows=13)
dftemp['file_name'] = os.path.basename(f)
df = df.append(dftemp,ignore_index=True)
不要在循环中附加到数据帧,每次附加都会将整个数据帧重新定位到内存中的新位置,非常慢。阅读所有数据帧后执行一次连接:
dfs = []
for f in glob.glob(path):
df = pd.read_excel(f,sheetname=0,skiprows=13)
df['file_name'] = os.path.basename(f)
df['c'] = df['c'].astype(str)
dfs.append(df)
df = pd.concat(dfs, ignore_index=True)
听起来你的 ID
,也就是 c
列,是一个字符串,但有时缺少字母。理想情况下,这应该用作字符串。
我正在遍历文件夹中的所有 excel 文件并将它们附加到数据框。一列(C 列)有一个 ID 号。在某些工作表中,ID 被格式化为文本,而在其他工作表中,它被格式化为数字。在导入期间或之后更改数据类型以使数据类型保持一致的最佳方法是什么?我总是可以在导入之前在每个 excel 文件中更改它们,但有 40 多张纸。
for f in glob.glob(path):
dftemp = pd.read_excel(f,sheetname=0,skiprows=13)
dftemp['file_name'] = os.path.basename(f)
df = df.append(dftemp,ignore_index=True)
不要在循环中附加到数据帧,每次附加都会将整个数据帧重新定位到内存中的新位置,非常慢。阅读所有数据帧后执行一次连接:
dfs = []
for f in glob.glob(path):
df = pd.read_excel(f,sheetname=0,skiprows=13)
df['file_name'] = os.path.basename(f)
df['c'] = df['c'].astype(str)
dfs.append(df)
df = pd.concat(dfs, ignore_index=True)
听起来你的 ID
,也就是 c
列,是一个字符串,但有时缺少字母。理想情况下,这应该用作字符串。