从数据框列中提取元组列表的 select 个元素
Extract select elements of a list of tuples from a dataframe column
我有一个包含列的数据框,其中包含一个元组列表作为其值,如下所示。
df1
Index Text
----- -----
0 [('ABC', 'NNP'), ('-', ':'), ('Jack', 'NNP'), ('Investment', 'NNP'), ('Activity', 'NN')]
我正在尝试创建一个新列,其中包含一个列表,该列表具有原始值中每个元组的第二个元素。
当我创建一个函数并通过传递上面的文本进行测试时,它按我预期的方式工作。
def get_second_element(newlist):
newlist2 = newlist
mylist = [item[1] for item in newlist]
return mylist
get_second_element([('ABC', 'NNP'), ('-', ':'), ('Jack', 'NNP'), ('Investment', 'NNP'), ('Activity', 'NN')])
结果:['NNP'、':'、'NNP'、'NNP'、'NN']
当我将该函数应用于数据框列时,
df1['Text'] = get_second_element(df1['Text'])
df1
Index Text
----- -----
0 (
假设它是长字符串,它只是提取第二个字符。
感谢任何建议。谢谢!
谢谢马克。我专注于您的最后建议并尝试转换数据类型。我还使用正则表达式来查找我正在寻找的字符串。
def get_second_element(text):
text2 = str(text)
text3 = re.findall('\, \'(.*?)\)', text2)
text3 = str(text3)
return text3
df1['Text'] = df1['Text'].apply(get_second_element)
df1
Index Text
----- -----
0 ["NNP'", ":'", "NNP'", "NNP'", "NN'"]
我可能需要稍微清理一下,但这就是我想要的。
我有一个包含列的数据框,其中包含一个元组列表作为其值,如下所示。
df1
Index Text
----- -----
0 [('ABC', 'NNP'), ('-', ':'), ('Jack', 'NNP'), ('Investment', 'NNP'), ('Activity', 'NN')]
我正在尝试创建一个新列,其中包含一个列表,该列表具有原始值中每个元组的第二个元素。
当我创建一个函数并通过传递上面的文本进行测试时,它按我预期的方式工作。
def get_second_element(newlist):
newlist2 = newlist
mylist = [item[1] for item in newlist]
return mylist
get_second_element([('ABC', 'NNP'), ('-', ':'), ('Jack', 'NNP'), ('Investment', 'NNP'), ('Activity', 'NN')])
结果:['NNP'、':'、'NNP'、'NNP'、'NN']
当我将该函数应用于数据框列时,
df1['Text'] = get_second_element(df1['Text'])
df1
Index Text
----- -----
0 (
假设它是长字符串,它只是提取第二个字符。
感谢任何建议。谢谢!
谢谢马克。我专注于您的最后建议并尝试转换数据类型。我还使用正则表达式来查找我正在寻找的字符串。
def get_second_element(text):
text2 = str(text)
text3 = re.findall('\, \'(.*?)\)', text2)
text3 = str(text3)
return text3
df1['Text'] = df1['Text'].apply(get_second_element)
df1
Index Text
----- -----
0 ["NNP'", ":'", "NNP'", "NNP'", "NN'"]
我可能需要稍微清理一下,但这就是我想要的。