python - Excel to Pandas 具有产生 NaN 的多级索引
问题描述
我正在使用这个数据集:
这样加载:
commuting_data_xls = pd.ExcelFile(commuting_data_filename)
commuting_data_sheets = commuting_data_front['Table description '].dropna()
commuting_data_1 = pd.read_excel(commuting_data_xls, '1', header=4, usecols=range(1,13))
commuting_data_1.dropna().dropna(axis=1)
生成的分层索引仅获取指定所有索引列的行。
如何更正此问题并命名索引列?
解决方案
尝试以下步骤:
使用 pd.read_excel() 打开,只需您想要的工作表和范围。
commuting_data_xls = pd.read_excel("commutingdata.xlsx",'1', header=4, usecols=range(1,13))
重置多索引名称。
commuting_data_xls.index.names = ['Gender', 'Work_Region', 'Region']
重置索引,然后限制行以消除总数,我假设您希望它们消失?如果不只是删除 iloc 步骤。
commuting_data_xls = commuting_data_xls.reset_index().iloc[0:28]
删除“Work_Region”列,因为这似乎是多余的。
commuting_data_xls = commuting_data_xls.loc[:,commuting_data_xls.columns != 'Work_Region']
填写 Gender 列以替换 NaN
commuting_data_xls['Gender'].fillna(method='ffill', inpldace=True)
如果它适合您的目的,请重置索引。
commuting_data_xls.set_index('Gender', 'Region')
推荐阅读
- structure - DBT - 为最终业务模型创建暂存视图的最佳实践
- sequelize.js - 无法将我本地系统中的 Sequelize 连接到 cloudSQ。我收到此错误:
- r-markdown - 在 R Markdown 中输出保存在 Rdata 中的表对象时,交叉引用不起作用?
- minecraft-forge - 为什么我在使用 ItemSpatialMark 时不能使用 setUnlocalizedName(String) return undefined
- python - Json 文件不会作为字典加载
- kibana - Kibana 日志中显示 Keycloak 无效用户凭据登录错误
- java - java构建失败并带有gradle
- mysql - 如何将txt文件中的值加载到mysql表列
- spring-vault - 如何使用 retry-with-spring-vault
- angular - 根据内部值隐藏组件