【发布时间】:2018-06-19 21:58:15
【问题描述】:
我有一个值数据框。
mydf.head():
Amount Date Description
0 39.95 2017-03-30 Paypal *A2zkidsltd
1 2.39 2017-04-01 Mcdonalds
2 8.03 2017-04-01 Wm Morrison
3 34.31 2017-04-01 Wm Morrison
4 10.56 2017-04-03 Asda Superstore
我希望将所有“*”替换为空。我在 Description 列上使用 pandas 替换功能。
mydf['Description'].replace('*','', inplace=True)
再看看结果:
mydf.head()
0 39.95 2017-03-30 Paypal *A2zkidsltd
1 2.39 2017-04-01 Mcdonalds
2 8.03 2017-04-01 Wm Morrison
3 34.31 2017-04-01 Wm Morrison
4 10.56 2017-04-03 Asda Superstore
第一个事务仍然包含一个“*”。
所有包含“*”的交易都会出现这种情况。
我看过文档;
https://pandas.pydata.org/pandas-docs/version/0.22.0/generated/pandas.DataFrame.replace.html
但是我看不出哪里出错了。我的代码或方法有什么错误?
【问题讨论】:
-
我觉得你需要
str你可以试试:df['Description'] = df['Description'].str.replace('*','') -
之所以不能按预期工作是因为
pandas.DataFrame.replace匹配整个字符串值来替换它。