Pandas将Excel文件中的空行合并为datafram中的一行

2024-05-12 21:18:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Pandas处理不同的excel文件。我需要从每个文件的顶部删除一定数量的行。这些额外的行可以是空的,也可以包含文本。熊猫正在合并一些行,所以我不知道有多少行需要删除。例如:

下面是一个示例excel文件(表示为csv):

,,
,,
some text,,
,,
,,
,,
name, date, task
Jason,1-Jan,swim 
Aem,2-Jan,workout 

下面是我当前的python脚本:

^{pr2}$

以下是打印数据帧时的结果:

dfs:          Unnamed: 0           Unnamed: 1 Unnamed: 2
0  some other text                  NaN        NaN
1              NaN                  NaN        NaN
2              NaN                  NaN        NaN
3              NaN                  NaN        NaN
4             name                 date       task
5            Jason  2016-01-01 00:00:00       swim
6              Aem  2016-01-02 00:00:00    workout

从文件中,我将删除前6行。但是,从数据帧中我只删除4个。有没有一种方法可以在Excel文件中读取原始状态的数据,从而使行数保持一致?在


Tags: 文件数据textnametaskdatesomenan
3条回答

以下是您要查找的内容:

import pandas as pd 
xl = pd.ExcelFile('extra_rows.xlsx') 
dfs = xl.parse(skiprows=6) 
print ("dfs: ", dfs) 

有关详细信息,请查看the docs on ExcelFile。在

我使用了python3和{}。Excel加载函数是pandas.read_csv。您可以尝试设置参数header=None来实现。以下是示例代码:

(1)使用默认参数,结果将忽略前导空白行:

In [12]: pd.read_excel('test.xlsx')
Out[12]: 
  Unnamed: 0 Unnamed: 1 Unnamed: 2
0      text1        NaN        NaN
1        NaN        NaN        NaN
2         n1         t2         c3
3        NaN        NaN        NaN
4        NaN        NaN        NaN
5        jim        sum        tim

(2)使用header=None,结果将保持前导空白行。在

^{pr2}$

如果您使用^ {CD1>}读取文件,并通过^ {CD2>},则应该包含空白行:

In [286]: df = pd.read_excel("test.xlsx", header=None)

In [287]: df
Out[287]:
           0     1      2
0        NaN   NaN    NaN
1        NaN   NaN    NaN
2  something   NaN    NaN
3        NaN   NaN    NaN
4       name  date  other
5          1     2      3

相关问题 更多 >