Извлечение города и штата из столбца в CSV с использованием python

917 1st St, Dallas, TX 75001
682 Chestnut St, Boston, MA 02215
669 Spruce St, Los Angeles, CA 90001
669 Spruce St, Los Angeles, CA 90001

Итак, я пытаюсь извлечь город и штат из данных...

def get_city_state(address):
    asplit = address.split(",")
    ssplit = address.split(" ")
    city = asplit[1].split()[-1]
    state = asplit[2].split()[0]
    return city , state


all_data['City'] = all_data['Purchase Address'].apply(lambda x: f"{get_city_state(x)}")
all_data.head()

В чем проблема? Если вы хотите вернуть несколько значений при применении, вы можете посмотреть Возврат нескольких переменных с помощью pandas.series.apply.

Ynjxsjmh 10.05.2022 16:28

Может быть, вы хотите all_data[['City', 'State']] = all_data['Purchase Address'].apply(get_city_state).tolist()?

Ynjxsjmh 10.05.2022 16:30
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
28
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы хотите, чтобы это ?

all_data = pd.DataFrame({'Purchase Address': ['917 1st St, Dallas, TX 75001',
                               '682 Chestnut St, Boston, MA 02215',
                               '669 Spruce St, Los Angeles, CA 90001',
                               '669 Spruce St, Los Angeles, CA 90001']})

Просто город:

def get_city_state(address):
    asplit = address.split(",")
    ssplit = address.split(" ")
    city = asplit[1].split()[-1]
    state = asplit[2].split()[0]
    return city 


all_data['City'] = all_data['Purchase Address'].apply(get_city_state).to_list()

Просто Штаты:

def get_city_state(address):
        asplit = address.split(",")
        ssplit = address.split(" ")
        city = asplit[1].split()[-1]
        state = asplit[2].split()[0]
        return states 
    
    
    all_data['States'] = all_data['Purchase Address'].apply(get_city_state).to_list()

Оба :

def get_city_state(address):
    asplit = address.split(",")
    ssplit = address.split(" ")
    city = asplit[1].split()[-1]
    state = asplit[2].split()[0]
    return city , state


all_data[['City', 'State']] = all_data['Purchase Address'].apply(get_city_state).to_list()

Выход :

Самый простой способ — использовать Pandas. Я предполагаю, что у вас есть данные в CSV-файле, или вы можете отредактировать их в CSV-файле. Затем:

1º Импорт панд:

import pandas as pd

2º Создайте фрейм данных с вашими данными (это может быть csv, jason, xls, ...). В этом случае код ссылается на CSV-файл, разделенный запятыми:

pd.read_csv('path or url of csv file', sep = ',')

Вывод: печатает ваш фреймворк данных После этого вы можете отредактировать строку и назначить переменную:

df = pd.read_csv('path or url of csv file', sep = ',')

Теперь, чтобы извлечь столбцы, которые вам нужны:

df(['City','State'])

Сказать «спасибо» приятно, но это не ответ на вопрос. Вместо этого проголосовать за ответы, которые помогли вам больше всего! Если эти ответы были для вас полезны, подумайте о том, чтобы поблагодарить вас более конструктивным образом, предоставив свои собственные ответы на вопросы, которые задали здесь ваши коллеги.

Другие вопросы по теме