考虑到这一点测试.csv文件:
wrong
8
7
6
3
1
2
4
5
9
10
这个代码是:
#!/usr/bin/python
import pandas as pd
data = pd.read_csv('test.csv', dtype=object)
counts=data['wrong'].value_counts(dropna=False)
counts_converted=counts.convert_objects(convert_numeric=True)
print counts_converted.sort_index()
生成以下输出:
1 1
10 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
dtype: int64
为什么最后一个print语句没有对索引1-10排序?你知道吗
在读取csv文件时,我必须强制dtype to object,以克服在列中检测混合字符、日期和数字格式的一些问题,因此删除该语句对我不起作用。你知道吗
我以为我可以把序列转换成数字,但似乎行不通。你知道吗
编辑问题,因为评论不允许我使用回车键而不发布评论。。。[啊,发现了很多关于这个功能的长篇大论。轮班工作。]
@EdChum建议的解决方案适用于简化案例,但不适用于生产数据。考虑一个稍微不那么简单的数据文件:
wrong,right
8,a
7,b
6,c
3,d
1,
2,f
4,g
5,h
9,i
10,j
,k
11,l
倒数第二行的空值导致错误“cannot convert float NaN to integer”
我有许多nan(都是空的)需要保存并计算在value\u counts中。你知道吗
其他空单元格在转换为int64时似乎显示为非常大的负数(即-5226413792388707240)。你知道吗
为我的迟钝提前道歉!谢谢你的帮助。你知道吗
在读取后添加一个
astype
可以使其正确排序。你知道吗你提到你必须整理出一些混合字符和日期之类的东西,在
astype
之前这样做,一切都应该很好。你知道吗这里的问题是您在任何类型转换之前调用了df上的
value_counts
,因此您的value_counts
索引仍然是object
数据类型,即str
:调用
convert_objects
转换数据而不是索引。你知道吗如果将索引类型强制转换为
np.int64
,则它将正确排序:相关问题 更多 >
编程相关推荐