2016-03-03 41 views
4

我在某些地方(Python 2.7)中有一個字符爲"的熊貓數據框。 我想從數據中刪除所有"。我正在使用以下方法:Pandas.replace不從數據中刪除字符

data_frame.replace(to_replace'"', value = '') 

但是,數據幀保持不變並且不會發生操作。 任何有關問題的建議將不勝感激。

回答

2

你可以嘗試用replaceregex=True

import pandas as pd 

df = pd.DataFrame({'ItemID': {0: 8988, 1: 8988, 2: 6547, 3: 6547}, 
        'Description': {0: 'Tall Chair', 1: 'Tall Chair', 2: 'Big" Pillow', 3: 'Big Pillow'}, 
        'Feedback': {0: 'I hated it""', 1: 'Best chair" ever', 2: 'Soft and amazing', 3: 'Horrific color'}}) 
print df 
    Description   Feedback ItemID 
0 Tall Chair  I hated it"" 8988 
1 Tall Chair Best chair" ever 8988 
2 Big" Pillow Soft and amazing 6547 
3 Big Pillow Horrific color 6547 

print df.replace({'"': ''}, regex=True) 
    Description   Feedback ItemID 
0 Tall Chair  I hated it 8988 
1 Tall Chair Best chair ever 8988 
2 Big Pillow Soft and amazing 6547 
3 Big Pillow Horrific color 6547 
+0

啊,不錯,在數據幀比我的回答更好地工作。 – jrjc

+0

謝謝。我認爲你的答案非常適合在一列中替換。 – jezrael

+0

謝謝! df = df.replace({''':''},regex = True)非常棒! – Menkes

-1

要麼設置inplace標誌True或重新分配的輸出回data_frame

data_frame.replace(to_replace'"', value = '', inplace=True) 

data_frame = data_frame.replace(to_replace'"', value = '') 
-1

replace函數返回與所述替換數據的新數據幀。嘗試:

data_frame = data_frame.replace(to_replace='"', value='') 
1

您需要使用方法的Series

所以str.replace

data_frame.foo.str.replace(to_replace'"', value = '') 

foo是一列

> df 
    foo 
0 "bar" 

> df.foo.str.replace('"', '') 
0 bar 
Name: foo, dtype: object 

的名稱。如果你有很多列,但是然後@jezrael回答更好,我猜:

for s in df: 
    if df[s].dtype == "object": # to avoid converting non-string column into string 
     df.loc[:,s] = df.loc[:,s].str.replace('"', '')