如何删除具有字符串

时间:2016-05-09 17:13:22

标签: python python-3.x pandas

我有一个包含373行* 3列数据的CSV文件(我认为默认情况下是一个DataFrame),我使用了Pandas。 在某些数据框的末尾有一些字母(子字符串),我希望将其删除,然后以新名称存储此更新的表。 我在做这件事时遇到了很多麻烦。我尝试将表的列分别存储为字符串,然后替换这些不需要的子字符串将为null('')。它没有工作,现在我迷路了!请帮忙!! 这就是我尝试的:将表拆分成列然后替换

import pandas as pd

loss=pd.read_csv('Loss.csv')

eq1_list=str(loss.ix[:,0])

eq2_list=str(loss.ix[:,1])

eq3_list=str(loss.ix[:,2])

for eq in eq1_list:
    eq.replace('.fail','')
    eq.replace('.fail2','')

print(eq1_list)

你可以看到' .fail'和' .fail2'是pandas表中的子字符串,这些子字符串存在于整个373 * 3表中的许多元素中。这种方法没有删除子串。 样本输入:

     EQ1     EQ2        EQ3
0    A1.fail A2.fail    NaN
1    B1.fail2 B3.fail   B3.fail2
...
372  X1.fail  X2.fail2  X3.fail

预期产出:

A1 A2 NaN
B1 B3 B3
...
X1 X2 X3

1 个答案:

答案 0 :(得分:1)

这比使用DataFrame.replace更简单:

new_loss = loss.replace('\.fail.?$', '', regex=True)

这将删除匹配" .failX"的任何字符串后缀,其中X可以是任何(或什么都不是)。

替换方法非常强大,有很多选项。我鼓励你阅读文档(上面链接)。