【问题标题】:How can I use Pandas to replace certain values in Excel data?如何使用 Pandas 替换 Excel 数据中的某些值?
【发布时间】: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


【解决方案1】:

Pandasinterrows返回的namedtuple名称row,namedtuple当然没有replace的方法。您需要的是 pandas 方法 replace(用于整个数据框)或字符串评估器的 replace(用于单个列)。

例子:

df = pd.DataFrame({'col1': ['abc', 'def " ', 'g – hi'],
                   'col2': ['jk / ', ' ’ ', 'lmn']})
#        col1   col2
# 0       abc  jk / 
# 1    def "    ’ 
# 2  g – hi    lmn

df.replace([r'(.*) " (.*)', r'(.*) – (.*)', r'(.*) / (.*)', r'(.*) ’ (.*)'],
           [r'\1 \2', r'\1 \2', r'\1 & \2', r'\1 \2' ],
           regex=True)

结果:

   col1   col2
0   abc  jk & 
1  def        
2  g hi    lmn

【讨论】:

  • 谢谢,\1\2 是干什么用的?再次感谢
猜你喜欢
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 2020-12-24
  • 2020-10-29
  • 2021-04-06
相关资源
最近更新 更多