【问题标题】:how do you find the last column or row in an excel spreadsheet using python pandas如何使用 python pandas 在 Excel 电子表格中找到最后一列或最后一行
【发布时间】:2014-02-22 03:40:51
【问题描述】:

您好,我希望使用 pandas 将电子表格的一部分作为数据框导入,但问题是电子表格每周都会更改,并且行数和列数每周都在变化。

在 Excel VBA 中,我可以通过编程方式确定 excel 电子表格中的列数和行数,但如何在 python 中确定呢??

col-1 | col -2
1.     blue
2.     green
3.     blue
4.     blank
5.     blank

我需要一些 python 代码,最好是 python - pandas 方法 read_excel 的参数,它告诉我传递给它的文档中的列数是 2,如果包含标题,行数是 5 或 6。

但是我需要它是可编程的(每次调用),因为我想为它提供不同大小和不同列数的电子表格。

【问题讨论】:

  • 空单元格真的是空的还是字符串'blank'或'NaN'?
  • 它们是空白的,也就是没有数据。因此,一个电子表格可能有 600 行,但下周可能是 1-10 列,有 7 行或 800 行。

标签: python excel pandas


【解决方案1】:

fillna 与方法“填充”一起使用

In [71]:

df1 = pd.DataFrame({'a':[1,2,3,NaN,NaN,4,5,6], 'b':[1,2,NaN,NaN, 3,NaN,4,5]})
df1
Out[71]:
    a   b
0   1   1
1   2   2
2   3 NaN
3 NaN NaN
4 NaN   3
5   4 NaN
6   5   4
7   6   5

[8 rows x 2 columns]

在 [85] 中:

df1.fillna(method='ffill',inplace=True)
df1
Out[85]:
   a  b
0  1  1
1  2  2
2  3  2
3  3  2
4  3  3
5  4  3
6  5  4
7  6  5

[8 rows x 2 columns]

【讨论】:

  • 太棒了,这是一种在缺少数据的地方填充数据集的绝妙方法。比使用 Excel 循环遍历 FOR LOOP 中的所有单元格要快得多。你知道如何找到最后使用的行和列吗?在我想要操作的电子表格中,这会有所不同吗?你能解释更多关于 Fillna 方法和 Inplace 参数的信息吗?我不明白它根据文档做了什么。方法文档中几乎总是没有实际用例示例数据输入和示例数据输出。 pandas.pydata.org/pandas-docs/dev/generated/…
  • fillna 替换缺失或NaN values,method 参数允许向前或向后传播最后一个有效值以填充 NaN,inplace 表示修改了 df 设置此到False 将返回一个副本
  • @user3098818 xlwt 是 Pandas 的独立模块,您可能需要安装它,我无法帮助您安装该模块,因为我从未使用过它
  • 哦,我认为这是使用 fillna 方法的依赖项。无论如何,谢谢。
猜你喜欢
  • 2012-12-21
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多