Написание значений, чтобы преуспеть в Python, используя панд - PullRequest
0 голосов
/ 07 мая 2018

Я новичок в python и хотел бы передать ZipCode в Excel-файле в пакет 'uszipcode' и записать состояние для этого конкретного почтового индекса в столбец 'OriginalZipcode' на листе Excel. Причина для этого заключается в том, что я хочу сравнить существующие состояния с исходными состояниями. Я не понимаю, является ли цикл for неправильным в коде или что-то еще. В настоящее время я не могу записать состояния в столбец OriginalZipcode в Excel. Код, который я написал:

import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
import uszipcode as US
from uszipcode import ZipcodeSearchEngine
search = ZipcodeSearchEngine()
df = pd.read_excel("H:\excel\checking for zip and states\checkZipStates.xlsx", sheet_name='Sheet1')
#print(df.values)
for i, row in df.iterrows():
    zipcode = search.by_zipcode(row['ZipCode']) #for searching zipcode
    b = zipcode.State
    df.at['row','OriginalState'] = b
    df.to_excel("H:\\excel\\checking for zip and states\\new.xlsx", sheet_name = "compare", index = False)

Лист Excel имеет следующий формат:

| ZipCode   |CurrentState     | OriginalState |
|-----------|-----------------|---------------|
| 59714     | Montana         |               |
| 29620     | South Carolina  |               |
| 54405     | Wisconsin       |               |
|    .      | .               |               |
|    .      | .               |               |

1 Ответ

0 голосов
/ 07 мая 2018

Вы можете добавить столбец OriginalState без итерации df:

Определите функцию, которая возвращает желаемое значение для любого заданного почтового индекса:

def get_original_state(state):
    zipcode = search.by_zipcode(state) #for searching zipcode
    return zipcode.State

Тогда:

df['OriginalState'] = df.apply( lambda row: get_original_state(row['ZipCode']), axis=1)

Наконец, экспортируйте только один раз df, чтобы преуспеть.

Это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...