Как разделить значения внутри круглых квадратных скобок в двух отдельных новых столбцах в python кадре данных? - PullRequest
0 голосов
/ 12 апреля 2020

Как разделить значения на два столбца, которые заключены в круглые скобки? У меня есть фрейм данных, как указано ниже.

enter image description here Теперь проблема в длине первой части (до запятой), а вторая часть (после запятой) не исправлена. Это может варьироваться.

Я хочу поместить два значения в круглые скобки в два отдельных новых столбца с именами «Pos» и «State».

Можете ли вы помочь мне с кодом python, чтобы реализовать это.

Ниже приведено то, чего я хочу достичь enter image description here

Ответы [ 3 ]

0 голосов
/ 12 апреля 2020
df['pos'] = df.Sentiment.str.split(',')[0]
df['state'] = df.Sentiment.str.split(',')[1]
0 голосов
/ 12 апреля 2020

Сначала импортируйте pandas, прочитайте через него csv и сохраните данные в объекте dataframe.

Используйте метод .str.split, чтобы разделить столбец «Чувство» на две запятой.

Затем создайте новые столбцы, снимите передние и задние скобки строкового значения, если оно есть, с помощью .str.strip.

Распечатайте данные. Или, если хотите, запишите его в новый файл csv, используя метод .to_csv.

Не забудьте переименовать имена файлов csv в методах .read_csv и .to_csv.

Полный код:

import pandas as pd

# reading csv
data = pd.read_csv("file.csv")

# new data frame with split value columns 
splitData = data["Sentiment"].str.split(",", n=1, expand=True)

# making new column Pos from first part of the split data, 
# also remove front and back brackets if any
data["Pos"] = splitData[0].str.strip("()")

# making new column state from second part of the split data, 
# also remove front and back brackets if any
data["state"] = splitData[1].str.strip("()")

# print data
print(data)

# write back to a new csv file
data.to_csv('newFile.csv')

Ниже приведены выходные данные с использованием фиктивных данных:

Печать на терминал: enter image description here

Новый CSV: enter image description here

0 голосов
/ 12 апреля 2020

Круглые скобки, или, как вы называете, круглые скобки, представляют тип данных, называемый кортежами в Python.

Если это состояние c, доступ к массивам кортежей осуществляется несколькими способами. Вот простой способ

arr = [(5,5), (6,7)]
listOfFirstItems, listOfSecondItems = zip(*arr)
# listOfFirstItems = [5,6]
# listOfSecondItems = [5,7]

Итак, теперь я не на 100% уверен в вашей структуре данных, но вы можете добавлять эти элементы по мере необходимости.

...