如何在Pandas中基于列字符串值筛选DataFrame行?仅显示全大写州
如何在Pandas中筛选全大写州名的行
嗨,我来帮你搞定这个Pandas筛选的问题!你需要从DataFrame里挑出那些州名为全大写的行(也就是包含城市总数的汇总行),其实用Pandas的字符串方法就能轻松实现。
方法说明
Pandas的str.isupper()方法可以直接对DataFrame的字符串列进行操作,它会检查每个字符串中的所有字母是否都是大写,并且至少包含一个字母——正好符合你要筛选的州行特征(城市名都是首字母大写或混合大小写,不会全大写)。
完整代码示例
先修正你代码里的小问题(比如变量名不一致:用d读取数据却打印df),然后加上筛选逻辑:
import pandas as pd # 如果你需要绘图可以保留matplotlib相关代码,单纯筛选的话可以去掉 # import matplotlib.pyplot as plt # %pylab inline # 读取CSV数据,统一变量名为df df = pd.read_csv("states.csv") # 筛选出"州/城市"列中全大写的行 filtered_df = df[df['州/城市'].str.isupper()] # 打印筛选结果 print(filtered_df)
结果验证
根据你提供的样例数据,运行后会得到以下结果:
州/城市 B C D 0 FL 3 5 6 4 CA 8 3 2 7 WA 4 2 1
额外注意事项
如果你的DataFrame中存在空值或者非字符串的行,str.isupper()会返回NaN,这时候可以用fillna(False)处理,避免筛选出错:
filtered_df = df[df['州/城市'].str.isupper().fillna(False)]
内容的提问来源于stack exchange,提问作者BeginCs123
相关产品推荐
相关产品推荐

