我有一个包含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
答案 0 :(得分:1)
这比使用DataFrame.replace更简单:
new_loss = loss.replace('\.fail.?$', '', regex=True)
这将删除匹配" .failX"的任何字符串后缀,其中X可以是任何(或什么都不是)。
替换方法非常强大,有很多选项。我鼓励你阅读文档(上面链接)。