如何根据pandas列中的字符串值从DataFrame中选择行?我只想显示全部大写的状态。
各州拥有城市总数。
import pandas as pd
import matplotlib.pyplot as plt
%pylab inline
d = pd.read_csv("states.csv")
print(d)
print(df)
# States/cities B C D
# 0 FL 3 5 6
# 1 Orlando 1 2 3
# 2 Miami 1 1 3
# 3 Jacksonville 1 2 0
# 4 CA 8 3 2
# 5 San diego 3 1 0
# 6 San Francisco 5 2 2
# 7 WA 4 2 1
# 8 Seattle 3 1 0
# 9 Tacoma 1 1 1
如何像这样显示,
# States/Cites B C D
# 0 FL 3 5 6
# 4 CA 8 3 2
# 7 WA 4 2 1
您可以编写一个函数来应用于每个值States/cities
柱子。让函数返回 True 或 False,应用该函数的结果可以充当 DataFrame 上的布尔过滤器。
这是使用 pandas 时的常见模式。在您的特定情况下,您可以检查中的每个值States/cities
是否仅由大写字母组成。
例如:
def is_state_abbrev(string):
return string.isupper()
filter = d['States/cities'].apply(is_state_abbrev)
filtered_df = d[filter]
Here filter
将是一个 pandas 系列True
and False
价值观。
您还可以使用 lambda 表达式获得相同的结果,如下所示:
filtered_df = d[d['States/cities'].apply(lambda x: x.isupper())]
这本质上是做同样的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)