繁体   English   中英

熊猫数据框read_excel不会将空白的左上单元格视为列?

Pandas dataframe read_excel does not consider blank upper left cells as columns?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试将Excel或CSV文件读入pandas数据框。 该文件将仅读取前两列,并且前两列的第一行将是列名。 问题是当我在Excel文件中第一行的第一列为空时。

            IDs
2/26/2010    2
3/31/2010    4
4/31/2010    2
5/31/2010    2

然后,以下代码的最后一行失败:

uploaded_file = request.FILES['file-name']
if uploaded_file.name.endswith('.csv'):
    df = pd.read_csv(uploaded_file, usecols=[0,1])
else:
    df = pd.read_excel(uploaded_file, usecols=[0,1])

ref_date = 'ref_date'
regime_tag = 'regime_tag'
df.columns = [ref_date, regime_tag]

显然,它只读取一列(即ID)。 但是,使用read_csv ,它会读取两列,而第一列是unnamed 我希望它具有这种行为,并且无论顶部单元格是空还是填充,都读取两列。 我该怎么做?

1 个回复

发生的情况是,Excel文件中的第一个“列”被作为索引读取,而在CSV文件中,其被视为列/系列。

我建议您采用其他方法,并修改pd.read_csv以将第一列作为索引读取。 然后使用reset_index将索引提升为一系列:

if uploaded_file.name.endswith('.csv'):
    df = pd.read_csv(uploaded_file, usecols=[0,1], index_col=0)
else:
    df = pd.read_excel(uploaded_file, header=[0,1], usecols=[0,1])

df = df.reset_index()  # this will elevate index to a column called 'index'

这将提供一致的输出,即第一个序列将具有标签'index' ,而数据帧的索引将为常规pd.RangeIndex

if / else构造,您可能会使用调度程序来摆脱笨拙的if

file_flag = {True: pd.read_csv, False: pd.read_excel}
read_func = file_flag[uploaded_file.name.endswith('.csv')]

df = read_func(uploaded_file, usecols=[0,1], index_col=0).reset_index()
1 Pandas read_excel() 将具有空白值的日期列解析为 NaT

我正在尝试读取具有以下代码的日期列的 excel 文件 尽管我已经指定了 keep_default_na = False,但我看到数据框在 Excel 日期列中的相应空白单元格中具有 'NaT' 值。 请建议,如何在解析 Excel 文件时获取空字符串而不是 'NaT'。 我正在使用 Pyt ...

6 将read_excel中的多个Excel工作表循环到Pandas中的串联数据框中

我有一个文件,该文件的每个“基金”都有一个标签,这些标签在其自己的单独标签上被引用。 我想将所有这些都读取到一个串联的数据框中。 我使用以下内容以非常手动的方式进行操作,但是工作表的数量可能会发生变化。 有没有一种有效的方法可以将其写入上下文相关的循环中,该循环将仅引入当前文件中的所 ...

7 Pandas read_excel - 为具有公式的单元格返回 nan

我有一个 excel 文件,其中包含会计数据以及某些单元格的文件使用公式。 当我使用 pandas read_excel 读取文件中的值时,它为具有公式的单元格返回nan值。 我也用过 openpyxl,但还是有同样的问题。 有什么方法可以读取具有公式的单元格的值而不是公式。 我还附上了使用的 ...

9 在 Python pandas 中使用 `read_excel` 读取空单元格

我正在使用 Python 熊猫来read_excel 。 这是我正在阅读的专栏。 我的问题是 read_excel 没有将空单元格计算为单元格。 当我使用df2=df1.iloc[0:30] ,我希望它包含那些空单元格,因此最后两个数据项不包含在我的数据框中(这是因为这些单元格在整个月中每天都 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM