Я роблю 2 речі. 1) фільтрувати кадр даних у пандах 2) очистити текст Unicode у певному стовпчику відфільтрованого фрейму даних.
import pandas as pd
import probablepeople
from unidecode import unidecode
import re
#read data
df1 = pd.read_csv("H:\data.csv")
#filter
df1=df1[(df1.gender=="female")]
#reset index because otherwise indexes will be as per original dataframe
df1=df1.reset_index()
Тепер я намагаюся очистити текст Unicode в стовпці адреси
#clean unicode text
for i in range(10):
df1.loc[i][16] = re.sub(r"[^a-zA-Z.," ]",r" ",df1.address[i])
Однак я не в змозі зробити це, і нижче - помилка, яку я отримую.
c:python27libsite-packagesipykernel__main__.py:4: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
Відповіді:
3 для відповіді № 1Я думаю, що ви можете використовувати str.replace
:
df1=df1[df1.gender=="female"]
#reset index with parameter drop if need new monotonic index (0,1,2,...)
df1=df1.reset_index(drop=True)
df1.address = df1.address.str.replace(r"[^a-zA-Z.," ]",r" ")