Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python数据框架中将圆方括号内的值拆分为两个单独的新列?_Python_Pandas - Fatal编程技术网

如何在python数据框架中将圆方括号内的值拆分为两个单独的新列?

如何在python数据框架中将圆方括号内的值拆分为两个单独的新列?,python,pandas,Python,Pandas,如何将值拆分为圆括号内的两列? 我有一个数据帧,如下所述 现在的问题是第一部分(逗号前)和第二部分(逗号后)的长度不固定。这可能会有所不同 我想把圆括号内的两个值分成两个单独的新列,分别命名为“Pos”和“state” 你能帮我用python代码来实现这个吗 下面是我想要达到的目标 圆括号或圆括号代表Python中称为元组的数据类型 如果是静态的,则可以通过多种方式访问元组数组。这里有一个简单的方法 arr = [(5,5), (6,7)] listOfFirstItems, listOfSe

如何将值拆分为圆括号内的两列? 我有一个数据帧,如下所述

现在的问题是第一部分(逗号前)和第二部分(逗号后)的长度不固定。这可能会有所不同

我想把圆括号内的两个值分成两个单独的新列,分别命名为“Pos”和“state”

你能帮我用python代码来实现这个吗

下面是我想要达到的目标
圆括号或圆括号代表Python中称为元组的数据类型

如果是静态的,则可以通过多种方式访问元组数组。这里有一个简单的方法

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

因此,现在我不能100%确定您的数据结构,但您可以根据需要添加这些项目。

首先导入pandas并读取csv,然后将数据存储到dataframe对象中

df['pos'] = df.Sentiment.str.split(',')[0]
df['state'] = df.Sentiment.str.split(',')[1]
使用
.str.split
方法通过逗号将“情绪”列一分为二

然后创建新列,使用
.str.strip
删除字符串值的前后括号(如果有)

打印数据。或者,如果愿意,使用
.to_csv
方法将其写入新的csv文件

记住在
.read_csv
.to_csv
方法中重命名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')
以下是使用模拟数据的输出:

打印到终端:

新CSV:

到目前为止你都试过什么?我试过regex和split。Split给出了长度问题,regex也没有按预期工作。这是否回答了您的问题?究竟是什么问题?请参阅,。请不要只发布代码作为答案,还要解释代码的作用以及它如何解决问题。带有解释的答案通常质量更高,更像是吸引选票。它是numpy.dtype。它是dtype('O')