如何将wbgapi economy.info输出转换为Pandas DataFrame?
解决wbgapi.economy.info()转Pandas DataFrame的问题
- 别折腾打印后的字符串了——
wbgapi.economy.info()本身返回的是可迭代的数据集对象,不是字符串。你之前踩的坑是把打印输出的文本当成了数据源,完全没必要绕这个弯。
直接用这段代码就能搞定:
import wbgapi as wb import pandas as pd # 获取经济体信息的原生数据集对象,不是打印出来的字符串 economy_data = wb.economy.info() # 直接转成DataFrame df = pd.DataFrame(economy_data) # 现在随便用Pandas的排序、筛选功能,比如按经济体名称排序 sorted_df = df.sort_values(by='name') print(sorted_df)
- 如果真的碰到只能处理打印输出字符串的极端情况(比如已经把输出存成了文本),可以手动按列分割解析:
# 假设这是你从控制台复制的打印输出 raw_output = """id name region incomeLevel ABW Aruba LCN HIC AFG Afghanistan SAS LIC ALB Albania ECS UMC""" # 拆分行并清理空行 lines = [line.strip() for line in raw_output.split('\n') if line.strip()] # 提取表头 headers = lines[0].split() # 处理每一行数据(注意名称可能带空格,所以用maxsplit控制分割次数) rows = [] for line in lines[1:]: parts = line.split(maxsplit=3) rows.append({ headers[0]: parts[0], headers[1]: parts[1], headers[2]: parts[2], headers[3]: parts[3] if len(parts) >=4 else '' }) # 转成DataFrame df = pd.DataFrame(rows) print(df)
重点提醒:第一种方法才是wbgapi的标准用法,效率高还不容易出错,优先用这个。
内容的提问来源于stack exchange,提问作者Adam_PythonEnthusist
相关产品推荐
相关产品推荐

