gpt4 book ai didi

python - 充满字符串的数据框(带有一些空字符串);想要将一些列转换为整数,一些列转换为 float ,并将一些保留为字符串

转载 作者:行者123 更新时间:2023-12-01 02:38:59 25 4
gpt4 key购买 nike

假设我有一个由 14 列组成的数据框,所有单元格均为字符串。

其中一些字符串是带有字母的实际单词。我想将这些列保留为字符串(索引 0、3、4 和 13)。

其中一些字符串是没有小数位的整数。我想将一些列转换为整数(索引 1:2、5:7、9:10、12)。

最后,剩下的字符串是带有小数位的数字。我想将这些剩余的列转换为 float (索引 6、8、11)

这是数据帧的示例:

0  1         2     3   4    5  6   7  8    9  10  11   12    13 

0 Joe Blow 1947 29 CLE Q 4 1 0.3 4 5 6.5 2.4 Joe.htm
1 Ed Blow 1972 24 HOU Q 18 1 0.8 4 2 2.5 Ed.htm
2 Jim Blow 1974 23 CHI Q 18 3 2.2 2 0.8 3.83 Jim.htm
3 Al Blow 1995 STL Q 16 2 5 1 3.1 4.5 Frank.htm
4 Tom Blow 1969 23 DET Q 14 1 0.8 3 0 2.4 4.0 Tom.htm




[5 rows x 14 columns]

最佳答案

您可以使用to_numericcombine_first ,但如果 NaNint 列将转换为 float ,因为根据设计:

df = df.apply(pd.to_numeric, errors='coerce').combine_first(df)

print (df)
0 1 2 3 4 5 6 7 8 9 10 11 12 13
0 Joe Blow 1947 29.0 CLE Q 4 1 0.3 4 5.0 6.5 2.40 Joe.htm
1 Ed Blow 1972 24.0 HOU Q 18 1 0.8 4 2.0 2.5 NaN Ed.htm
2 Jim Blow 1974 23.0 CHI Q 18 3 2.2 2 NaN 0.8 3.83 Jim.htm
3 Al Blow 1995 NaN STL Q 16 2 NaN 5 1.0 3.1 4.50 Frank.htm
4 Tom Blow 1969 23.0 DET Q 14 1 0.8 3 0.0 2.4 4.00 Tom.htm

print (df.dtypes)
0 object
1 object
2 int64
3 float64
4 object
5 object
6 int64
7 int64
8 float64
9 int64
10 float64
11 float64
12 float64
13 object
dtype: object

关于python - 充满字符串的数据框(带有一些空字符串);想要将一些列转换为整数,一些列转换为 float ,并将一些保留为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45930656/

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