我想将指定行字符串的编程语言类型更改为 int。 现在,我正在使用numpy&scipy&pandas等制作数据分析应用程序。 我的应用读取 csv 文件。我想针对只有 10~15 行的行指定 int 类型(其他所有行都是字符串类型)。 当我编写这样的代码时
x = pandas.pd.read_csv('filename/csv file',header=1,parse_data=True,converters={9:14,lambda x:x.decode('int')})
发生语法错误(:expected error
)。我认为我的代码是错误的。但我不知道如何解决它。我该怎么办?
有可能,但不推荐,因为与str
混合types
int
和一些熊猫函数失败。
如果需要,按loc
选择行或按位置选择iloc
然后转换为int
:
np.random.seed(100)
df = pd.DataFrame(np.random.randint(10, size=(10,5)), columns=list('ABCDE')).astype(str)
print (df)
A B C D E
0 8 8 3 7 7
1 0 4 2 5 2
2 2 2 1 0 8
3 4 0 9 6 2
4 4 1 5 3 4
5 4 3 7 1 1
6 7 7 0 2 9
7 9 3 2 5 8
8 1 0 7 6 2
9 0 8 2 5 1
df.loc[3:8] = df.loc[3:8].astype(int)
print (type(df.loc[0, 'A']))
<class 'str'>
print (type(df.loc[4, 'A']))
<class 'int'>
converters={9:14,lambda x:x.decode('int')})
不是有效的python语法。
但是,不能更改每行的数据类型。与 pandas 一样,只有每列,每列都有一个数据类型,而不是每个单元格或每一行。
看看converters
,它既不是dict
也不是set
。