我有一个csv
看起来像(headers=第一行):
name,a,a1,b,b1
arnold,300311,arnld01,300311,arnld01
sam,300713,sam01,300713,sam01
当我跑步时:
df = pd.read_csv('file.csv')
列a
和b
的末尾有一个.0
连接,如下所示:
df.head()
name,a,a1,b,b1
arnold,300311.0,arnld01,300311.0,arnld01
sam,300713.0,sam01,300713.0,sam01
列a
和b
是整数或空白,那么pd.read_csv()
为什么将它们视为浮点数,我如何确保它们在读取时是整数?
正如评论中提到的,这是熊猫(和小熊猫)的一个限制。
NaN
是一个浮点数,CSV中的空值是NaN。这也列在熊猫的{a2}中。
你可以用几种方法来解决这个问题。
对于下面的示例,我使用以下命令导入数据-注意,我在列
a
和b
中添加了一个空值行删除南行
第一个选项是删除包含此
NaN
值的行。这样做的缺点是,你失去了整排。将数据放入数据帧后,运行以下命令:这将从数据帧中删除所有
NaN
行,然后将列a
和列b
转换为int
用占位符数据填充
NaN
此选项将用丢弃值替换所有的
NaN
值。这个价值是你需要确定的。为了这次测试,我做了-999999
。这将允许使用保留其余的数据,将其转换为int,并使其清楚哪些数据是无效的。如果以后根据列进行计算,则可以筛选出这些行。这将生成一个数据帧,如下所示:
保留浮点值
最后,另一种选择是保留浮点值(和
NaN
),而不担心非整数数据类型。使用Pandas将浮点转换为整数值read_csv-Working=
相关问题 更多 >
编程相关推荐