我想从带有熊猫的excel工作表中导入一些值。
使用Pandas读取值时,我希望逐列读取,但当每列的行为空时,停止读取值。
因为在我的excel文件中,不同的列有不同的行数,所以我现在得到的是带有一些数字的数组,但随后用“nan”值填充,直到它们达到最大数(即excel列中行数最多的行数)
我希望解释不要太混乱。
代码片段不是一个很好的例子,它是不可复制的,但希望能帮助理解我正在尝试做什么。
在代码片段的第二部分(下面是#删除nan),我试图在已经导入“nan”后删除它们,但这也不起作用,我得到了这个错误:ufunc'isnan'不支持输入类型,并且根据铸造规则“安全”,输入不能安全地强制转换为任何支持的类型。
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)])
这可能是可行的,但它不是有效的和糟糕的做法。在一个数据帧中拥有NaN
数据是Pandas(通常)中任何数据分析的常规部分。
我鼓励你阅读整个excel文件。然后,要删除所有的NaN
,您可以使用Pandas内置的dropna()
方法替换它们(例如,用0替换),甚至删除数据框中包含NaN
值的所有行。如果你有兴趣,很高兴扩展这个。