Python - Объекты серии изменчивы - Разбор адресов - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь создать новый столбец во фрейме данных, который будет анализировать адрес из строки.При попытке сделать это, я получаю следующую ошибку:

("'Series' objects are mutable, thus they cannot be hashed", u'occurred at index pk')

Я видел другие вопросы, подобные этому на этом сайте, но не совсем понимаю, как это относится к моему коду:

import usaddress, re, pyodbc
import pandas as pd

conn = pyodbc.connect("DSN=TEST;UID=test;PWD=test")

sql = "select top 10 pk, address from test..test"
df = pd.read_sql(sql,conn)

pattern = re.compile(".+\\b[0-9]{5}\\b")

def extract(pat):
    print pat
    test = pattern.findall(pat)
    return str(test[0])

i = 0

for i in df.iterrows():
    df[i]['cleansed_address'] = df.apply(lambda x: extract(df[i]['descrsched']))
    i+=1

1 Ответ

0 голосов
/ 12 декабря 2018

MCVE

df = pd.DataFrame([[1, 2,], [3, 4]])
df

# This is a tuple (index value, Series object that represents row)
#   |
#   v    
for i in df.iterrows():
    print(df[i])
#            ^
#            |
# This is you trying to tell Pandas to use a tuple
# in which the second element is a Series as a reference for a column name

Устранить проблему X / Y

df['cleansed_address'] = df['descrsched'].str.findall(pat).str[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...