python - 如何从excel数据表创建多个数据框
问题描述
在获得所需的列之后,我使用 pandas 库从 excel 电子表格中提取了这个数据框,并且我的表格格式如下,
REF PLAYERS
0 103368 Andrés Posada Sanmiguel
1 300552 Diego Posada Sanmiguel
2 103304 Roberto Motta Stanziola
3 NaN NaN
4 REF PLAYERS
5 1047012 ANABELLA EISMANN DE AMAYA
6 104701 FERNANDO ENRIQUE AMAYA CASTRO
7 103451 AUGUSTO ANTONIO ALVARADO AZCARRAGA
8 103484 Kevin Adrian Villarreal Kam
9 REF PLAYERS
10 NaN NaN
11 NaN NaN
12 NaN NaN
13 NaN NaN
14 REF PLAYERS
15 NaN NaN
16 NaN NaN
17 NaN NaN
18 NaN NaN
19 REF PLAYERS
我想创建多个数据框,将每一行 [['REF', 'PLAYERS']] 转换为新的数据框列。欢迎提出建议我还需要保留空白。熊猫新手。
解决方案
为此,您必须首先以不同的方式从文件中读取数据帧:在函数中设置header=None
参数pd.read_excel()
。因为现在您的列被称为“REF”和“PLAYERS”,但我们想按它们分组。
那么第一列名称可能是“0”,第一行如下,其中df
是您的数据框的名称:
# Set unique index for each group
df["group_id"] = (df[0] == "REF").cumsum()
解决方案:
# Set unique index for each group
df["group_id"] = (df["name_of_first_column"] == "REF").cumsum()
# Iterate over groups
dataframes = []
for name, group in df.groupby("group_id"):
df_ = group
# promote 1st row to column name
df_.columns = df_.iloc[0]
# and drop it
df_ = df_.iloc[1:]
# drop index column
df_ = df_[["REF", "PLAYERS"]]
# append to the list of dataframes
dataframes.append(df_)
您所有的多个数据帧现在都存储在一个数组dataframes
中。
推荐阅读
- c - 汇编中的内存分配和寻址
- java - 球体体积
- django - Django UpdateView:ValueError:int()的无效文字,基数为10:用户名
- html - 如何在浏览器中打开保存在 wwwroot 下的文件夹中的文件?
- image-processing - 为什么这个图像对我来说是错误的?
- powershell - 复制前 PowerShell 复制项检查目标是否具有相同的文件名
- c# - 如何在 C# 中连接多台服务器和数据库
- spring-boot - 我可以调用弹簧执行器库来获取运行状况/指标而不是使用执行器端点吗?如果是,如何?
- javascript - AWS Cognito 身份验证未按预期工作
- android - getBytes 未在 firebase .OnDataChange 中命中 .OnSuccss 或 .OnFailure 侦听器