熊猫,读取excel列值,但在该列中没有更多值时停止

时间:2018-12-28 11:56:30

标签: python pandas

我想使用Pandas从Excel工作表中导入一些值。

当我使用Pandas读取值时,我想逐列读取值,但是当每列的行为空时停止读取值。

由于在我的excel文件中,不同的列具有不同的行数,所以我现在得到的是具有一些数字的数组,但随后用“ nan”值填充,直到它们达到最大数目(即,具有最多行数的excel列)

我希望解释不要太混乱。

该代码段不是一个很好的例子,它不是可复制的,但希望能帮助您理解我的工作。

在代码段的第二部分(在 #Removing nan 下面)中,我试图在删除“ nan”后将其导入,但是那也不起作用,我遇到了这个错误: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' np.isfinite

也发生了同样的情况
df = pandas.read_excel(file_name)

for i in range(number_of_average_points):

    #Reading column values (includes nan)
    force_excel_col = df[df.columns[index_force]].values[13:]
    acceleration1_excel_col = df[df.columns[index_acceleration1]].values[13:]
    acceleration2_excel_col = df[df.columns[index_acceleration2]].values[13:]

    #Trying to remove nan
    force.append(force_excel_col[np.logical_not(np.isnan(force_excel_col))])
    acceleration1.append(acceleration1_excel_col[np.isfinite(acceleration1_excel_col)])
    acceleration2.append(acceleration1_excel_col[np.isfinite(acceleration2_excel_col)])

1 个答案:

答案 0 :(得分:1)

这可能是可行的,但这不是有效的做法,也是一种不好的做法。在数据框中包含merge数据是熊猫(以及一般而言)进行任何数据分析的常规部分。

我建议您宁愿阅读整个excel文件。然后,要摆脱所有NaN,您可以使用Pandas的内置NaN方法替换它们(例如,以0替换),甚至可以删除数据帧中包含{{ 1}}值。如果您有兴趣,很高兴对此进行扩展。