从数据帧中提取并返回大写单词



我有一个数据帧(df(,如下所示:

weather  day
rainy    Friday
Hot      saturday
cold     Sunday

如何提取日期栏中以大写字母开头的单词并将其返回到列表中?

您可以使用str.findall,然后使用explodedropna,然后调用to_list:

>>> df['day'].str.findall('^[A-Z].*').explode().dropna().to_list()
['Friday', 'Sunday']

我会做

dataf.loc[lambda d: d["day"].str.istitle(), "day"].tolist()

这样可以避免循环。基本上,我们在有标题的情况下选择行。我们也可以做d["day"].str[0].isupper(),然后将一天的系列投射到列表中。

完整代码:

import pandas as pd
dataf = pd.DataFrame({"weather":  "rainy Hot cold".split(),
"day": "Friday saturday Sunday".split()})
results = dataf.loc[lambda d: d["day"].str.istitle(), "day"].tolist()
print(results)
# ['Friday', 'Sunday']

尝试使用列表理解:

l = df['day'][df['day'].apply(lambda x: isinstance(x, str))]
l = [i for i in l if i[0].isupper()]

现在:

print(l)

提供:

['Friday', 'Sunday']

最新更新