/ / Неможливо вставити чистий текст Unicode назад у DataFrame в пандах - python, pandas, unicode, очищення даних

Неможливо вставити чистий текст Unicode назад у DataFrame у панди - python, pandas, unicode, clean-up

Я роблю 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" ")