【问题标题】:How to deal with 'dynamic' dataframes using pandas?如何使用熊猫处理“动态”数据框?
【发布时间】:2020-12-12 02:45:25
【问题描述】:

假设我有下表

X Y Z mm ff cc
1 2 3 0.2 0.4 0.3
0.1 0.3 0.4

导出为 .csv 文件的文件内容如下:

     X,Y,Z,mm,ff,cc
     1,2,3,0.2,0.4,0.3
     ,,,0.1,0.3,0.4

现在.. 如果表格只有一行,我可以使用 pandas 访问 python 中的任何单元格,例如:

    X = df.loc[0, 'X']    # X = 1
    Y = df.loc[0, 'Y']    # Y = 2
    Z = df.loc[0, 'Z']    # Z = 3
    mm_1 = df.loc[0, 'mm']  # mm_1 = 0.2
    ff_1 = df.loc[0, 'ff']  # ff_1 = 0.4
    cc_1 = df.loc[0, 'cc']  # cc_1 = 0.3

如果我想读取第二行的单元格,我需要更改如下代码:

    mm_2 = df.loc[1, 'mm']  # mm_2 = 0.1
    ff_2 = df.loc[1, 'ff']  # ff_2 = 0.3
    cc_2 = df.loc[1, 'cc']  # cc_2 = 0.4

现在...问题是原始 csv 文件可以有 1 行到 6 行。

让我们保持简单。如果我像上面的代码一样对所有单元格(0-1)的读取进行硬编码,当 csv 文件只有一行时,我会遇到问题,因为变量:mm_2ff_2、@987654327 @ 不会找到任何东西。

pandas有办法处理这种情况吗?

【问题讨论】:

  • df.iterrows()?
  • @QuangHoang 你是个天才!
  • 请写一个答案,以便我接受

标签: python pandas


【解决方案1】:

您可以使用df.iterrows(),也可以遍历正常循环并忽略等于NaN 的值。 NaN 值为空,由数据框填充。

【讨论】:

    猜你喜欢
    • 2019-07-08
    • 2022-11-03
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 2018-10-20
    • 2018-02-06
    相关资源
    最近更新 更多