gpt4 book ai didi

python - 如何将最后几列从 Pandas 中的字符串类型转换为整数

转载 作者:行者123 更新时间:2023-11-28 17:38:26 25 4
gpt4 key购买 nike

我有一个名为 df 的 df。

我想将此数据框的最后 10 列从字符串类型转换为整数。我怎样才能用 pythonic 方式做到这一点?

最佳答案

我认为最快的方法是使用convert_objects并使用下标/切片符号选择最后 10 列,示例:

In [23]:

df = pd.DataFrame({'a':['1','2','3','4','5']})

df = pd.concat([df]*11, axis=1)
df.columns = list('abcdefghijk')
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 5 entries, 0 to 4
Data columns (total 11 columns):
a 5 non-null object
b 5 non-null object
c 5 non-null object
d 5 non-null object
e 5 non-null object
f 5 non-null object
g 5 non-null object
h 5 non-null object
i 5 non-null object
j 5 non-null object
k 5 non-null object
dtypes: object(11)
memory usage: 480.0+ bytes
In [21]:

converted = df[df.columns[-10:]].convert_objects(convert_numeric=True)
converted
Out[21]:
b c d e f g h i j k
0 1 1 1 1 1 1 1 1 1 1
1 2 2 2 2 2 2 2 2 2 2
2 3 3 3 3 3 3 3 3 3 3
3 4 4 4 4 4 4 4 4 4 4
4 5 5 5 5 5 5 5 5 5 5
In [22]:

converted.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 5 entries, 0 to 4
Data columns (total 10 columns):
b 5 non-null int64
c 5 non-null int64
d 5 non-null int64
e 5 non-null int64
f 5 non-null int64
g 5 non-null int64
h 5 non-null int64
i 5 non-null int64
j 5 non-null int64
k 5 non-null int64
dtypes: int64(10)
memory usage: 440.0 bytes

然后您可以直接将结果分配回去:

In [31]:

df[df.columns[-10:]] = converted
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 5 entries, 0 to 4
Data columns (total 11 columns):
a 5 non-null object
b 5 non-null int64
c 5 non-null int64
d 5 non-null int64
e 5 non-null int64
f 5 non-null int64
g 5 non-null int64
h 5 non-null int64
i 5 non-null int64
j 5 non-null int64
k 5 non-null int64
dtypes: int64(10), object(1)
memory usage: 480.0+ bytes

或在 1 类轮中进行:

In [33]:

df[df.columns[-10:]] = df[df.columns[-10:]].convert_objects(convert_numeric=True)
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 5 entries, 0 to 4
Data columns (total 11 columns):
a 5 non-null object
b 5 non-null int64
c 5 non-null int64
d 5 non-null int64
e 5 non-null int64
f 5 non-null int64
g 5 non-null int64
h 5 non-null int64
i 5 non-null int64
j 5 non-null int64
k 5 non-null int64
dtypes: int64(10), object(1)
memory usage: 480.0+ bytes

关于python - 如何将最后几列从 Pandas 中的字符串类型转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27826702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com