我想使用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)])
答案 0 :(得分:1)
这可能是可行的,但这不是有效的做法,也是一种不好的做法。在数据框中包含merge
数据是熊猫(以及一般而言)进行任何数据分析的常规部分。
我建议您宁愿阅读整个excel文件。然后,要摆脱所有NaN
,您可以使用Pandas的内置NaN
方法替换它们(例如,以0替换),甚至可以删除数据帧中包含{{ 1}}值。如果您有兴趣,很高兴对此进行扩展。