You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Pandas识别CSV中无数据的国家(Python新手求助)

找出无数据的国家代码

嘿,作为Python新手能写到这一步已经很棒啦!你已经用groupby做了分组计数,现在要定位那些没有数据的国家其实很简单,我分两种常见情况给你说:

情况1:数据里有该国家的行,但所有列都是空值

你用gb.count()得到的explore表,每一行对应一个国家代码,每一列的数值是该列的非空数据量。如果某个国家的所有列计数都是0,说明它的行全是空值。要找出这些国家,可以这样做:

# 筛选出所有列计数都为0的国家
no_data_countries = explore[explore.eq(0).all(axis=1)].index.tolist()

# 打印结果
print("所有数据列都为空的国家代码:")
print(no_data_countries)

代码解释:

  • explore.eq(0):把explore表的每个元素和0比较,返回布尔值表
  • .all(axis=1):检查每一行的所有元素是否都是True(也就是整行都是0)
  • .index.tolist():把符合条件的行索引(也就是国家代码)转成列表,方便查看

如果你只关心某一列(比如某个特定指标)没有数据,也可以指定列名筛选,比如:

# 比如筛选"GDP per capita"列没有数据的国家
no_gdp_countries = explore[explore['GDP per capita'] == 0].index.tolist()

情况2:数据里完全没有该国家的任何记录

如果你的需求是找出应该存在但数据里完全没出现的国家(比如参考完整的国家代码列表),可以这样操作:

  1. 先获取完整的国家代码列表(通常这个数据集会配套有EdStatsCountry.csv文件,里面有所有国家信息)
  2. 对比原始数据里的国家代码,找出缺失的那些
# 读取完整的国家代码列表
country_list = pd.read_csv("EdStatsCountry.csv")['Country Code'].tolist()
# 获取数据中已有的国家代码
existing_codes = data['Country Code'].unique().tolist()
# 找出缺失的国家代码
missing_countries = [code for code in country_list if code not in existing_codes]

print("数据中完全没有记录的国家代码:")
print(missing_countries)

这样就能精准定位到你要找的无数据国家啦!

内容的提问来源于stack exchange,提问作者hlkl bklk

火山引擎 最新活动