【发布时间】:2022-07-08 00:11:54
【问题描述】:
我有一个简短的 Python 脚本,它使用 pandas 读取 Excel 文件,然后创建 SQL INSERT 命令。
在脚本内部,我需要替换某些字符串。
但是,当我这样做时,我得到了这个错误:
AttributeError: 'Pandas' object has no attribute 'replace'
这是我的脚本:
import pandas as pd
df = pd.read_excel('JulyData.xlsx')
# print(df)
# print(df.iloc[0, 0])
print('INSERT INTO project(name, object, amount, value)')
for row in df.itertuples(index=False):
rowString = row
rowString = rowString.replace(' " ', " ")
rowString = rowString.replace(' – ', " ")
rowString = rowString.replace(' / ', " & ")
rowString = rowString.replace(' ’ ', " ")
print(f'VALUES {tuple(rowString)}')
print(f'WAITFOR DELAY \'00:00:02\'')
print('\n')
pandas 有没有办法做到这一点?
谢谢!
样本输出:
{'name': ['Xu–, Yi', 'Gare, /Mark'], 'object': ['xuy@anes’.mty.edu', '"gareg@msu.edu'], 'amount': ['100', '200'], 'value': ['"abc"', 'def']}
【问题讨论】:
-
Pandas是命名元组row的名称,没有方法替换。你应该使用replace -
@Stef 但我使用的是
replace?还是我没有正确使用它?谢谢! -
你需要使用pandas的@987654332@方法,而不是nametuple中不存在的
replace方法。如果您可以分享一个简短的示例(df.head().to_dict('list')的输出),我可以发布答案。 -
@Stef 好的,谢谢!我编辑了我的问题并在最后包含了简短的示例。谢谢
-
我想您会通过我发布的示例来了解这个想法。但是,我注意到,从您的示例数据中,您想要删除的烦人字符串并不(总是)像您在上面的代码中尝试的那样被空格包围,因此您需要在我的示例中调整正则表达式。
标签: python-3.x pandas