【发布时间】:2018-02-15 14:39:06
【问题描述】:
我是一名研究生,正在使用 Python 为我的研究准备数据集。我对 python 的使用没有那么自信,所以我非常感谢你的帮助。
继续上一个问题 (how to do re.compile() with a list in python)
我想在数据框中的一列中应用这种单词识别。
import pandas as pd
from itertools import compress
fruits = ['apple', 'banana', 'cherry']
df = pd.DataFrame({"a":['green apple and red cherry', 'blue', 'apple, banana and cherry', 'banana banana split'],"b":[0,2,0,1]},
index = [1,2,3,4])
# Create a list to store the data
grades = []
grades = list(compress(fruits, (f in df.a for f in fruits)))
df['grades'] = pd.Series(grades)
这行不通,因为会生成一个数据框,其中所有“等级值”都是 NaN。
此外,我想知道这是否也可以使用句子列表而不是单词列表。以及如何做到这一点。
提前谢谢你!
【问题讨论】:
-
df.grades 应该是 ['apple,cherry', 'NAN', 'apple,banana,cherry', 'bananabanana']
标签: python regex pandas dataframe compression