我有一个相当大的csv文件,其中填充了从机器进行材料测试(压缩测试)获得的数据。数据的标头是Time,Force,Stroke,由于样本大小,它们重复了10次,因此最后一组标头是Time.10,Force.10,Stroke.10。由于实验的性质,并不是所有的列都一样长(有些是近似的,比其他的长2000行)。当我使用熊猫将文件导入我的IDE(spyder或jupyter)时,csv文件中空行中的所有单元格都标记为NaN。问题是...我无法在具有NaN值的列内或列之间进行任何数学运算,因为它们被视为str。我在几乎所有论坛上都尝试了最推荐的解决方案; .fillna(),dropna(),replace()和interpolate()。提到的方法有效,但仅在视觉上有效,例如df.fillna(0)将所有NaN值替换为0,但是当我尝试例如在列中找到最大值,我仍然收到错误消息,指出我的列中有字符串(在'float'和'str'的实例之间不支持TypeError:'>')。该问题是由NaN值引起的,原因是100%是因为csv文件中的空单元格所致,因为我已将一个csv文件导入到所有具有相同长度(无空单元格)且没有问题的列中。如果有人对我坚持了超过2周的问题有任何解决方案(不必在熊猫内,只需在python中),我将不胜感激。
答案 0 :(得分:0)
尝试使用 na_filter = False 的 read_csv()。 这至少应防止将“空”源单元格设置为 NaN 。
但是请注意:
因此,很可能在 read_csv()之后,您应该: