我正在为自己制作一个小项目,我将两个csv文件与pd.concat()
结合起来
如下图所示,每张表的数据都添加了双引号,我将“表1中的数据”,“表2中的数据”example from data set结合起来
我想从csv文件中删除双引号,但是当我使用时:
df = df.replace('"', '', regex=True)
什么都没发生。
如果我使用:
df = df.replace('e', 'x', regex=True)
它工作正常
这是我的代码:
import pandas as pd
import xlrd
import os
from pathlib import Path
import csv
#path of the file we read from
filename = os.path.join('..', 'C:\\prosjekt_lisensrapport\\201902_ModulesLicensesReport.xlsx')
sheet_names = [0,1]
dfs = pd.read_excel(filename,
sheet_name=sheet_names)
pd.concat((df.assign(source=sheet) for sheet, df in dfs.items()), ignore_index=True)
def sheets_to_df(filename, sheet_names):
df_dict = pd.read_excel(filename, sheetname=sheet_names)
return pd.concat(
(df.assign() for sheet, df in dfs.items()), axis=1, join='inner')
df = sheets_to_df(filename, sheet_names)
df = df.replace('"', '', regex=True)
df.to_csv('testResult.csv', sep=',', encoding='utf-8')
提前致谢。
你可以这样做,但它会将你的非字符串列转换为字符串1(参见this post):
for i, col in enumerate(df.columns):
df.iloc[:, i] = df.iloc[:, i].str.replace('"', '')
如果你不在乎,你可以使用applymap()
df = df.applymap(lambda x: x.replace('"', ''))
或者更简单,只需打开文件并用所需的字符替换所有双引号。无需将数据插入DataFrame即可执行此操作。
最好