pandas 更改panda Dataframe 的特定列的数据类型

ebdffaop  于 2022-12-02  发布在  其他
关注(0)|答案(5)|浏览(187)

我想对一个有很多列的 Dataframe 按一个特定的列进行排序,但首先我需要将类型从object更改为int。如何更改此特定列的数据类型,同时保持原来的列位置?

vybvopom

vybvopom1#

df['colname'] = df['colname'].astype(int)至少在从float值更改为int时有效。

chhqkbe1

chhqkbe12#

我已尝试以下操作:

df['column']=df.column.astype('int64')

对我很有效。

rhfm7lfc

rhfm7lfc3#

您可以通过按sort_values排序的列使用reindex,通过astype转换为int

df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'colname':['7','3','9'],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3]})

print (df)
   A  B  D  E  F colname
0  1  4  1  5  7       7
1  2  5  3  3  4       3
2  3  6  5  6  3       9

print (df.colname.astype(int).sort_values())
1    3
0    7
2    9
Name: colname, dtype: int32

print (df.reindex(df.colname.astype(int).sort_values().index))
   A  B  D  E  F colname
1  2  5  3  3  4       3
0  1  4  1  5  7       7
2  3  6  5  6  3       9

print (df.reindex(df.colname.astype(int).sort_values().index).reset_index(drop=True))
   A  B  D  E  F colname
0  2  5  3  3  4       3
1  1  4  1  5  7       7
2  3  6  5  6  3       9

如果由于None或错误数据导致第一个解决方案不起作用,请使用to_numeric

df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'colname':['7','3','None'],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3]})

print (df)
   A  B  D  E  F colname
0  1  4  1  5  7       7
1  2  5  3  3  4       3
2  3  6  5  6  3    None

print (pd.to_numeric(df.colname, errors='coerce').sort_values())
1    3.0
0    7.0
2    NaN
Name: colname, dtype: float64
zphenhs4

zphenhs44#

要简单地更改一列,您可以执行以下操作:df.column_name.apply(int)
您可以将int替换为所需的数据类型,例如(np.int64)strcategory
对于多个数据类型的更改,我建议如下:
df = pd.read_csv(data, dtype={'Col_A': str,'Col_B':int64})

wribegjk

wribegjk5#

documentation提供了所需的所有信息。让我们从文档中获取玩具 Dataframe :

d = {'col1': [1, 2], 'col2': [3, 4]}

例如,如果我们想将col1转换为int32,我们可以使用字典:

df.astype({'col1': 'int32'})

此外,上述方法允许避免SettingWithCopyWarning

相关问题