我想将指定行字符串的编程语言类型更改为 int



我想将指定行字符串的编程语言类型更改为 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混合typesint和一些熊猫函数失败。

如果需要,按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

最新更新