将 pandas 数据框中的列从 int 转换为 string

新手上路,请多包涵

我在 pandas 中有一个数据框,其中包含混合的 int 和 str 数据列。我想首先连接数据框中的列。为此,我必须将 int 列转换为 str 。我试图做如下:

 mtrx['X.3'] = mtrx.to_string(columns = ['X.3'])

要么

mtrx['X.3'] = mtrx['X.3'].astype(str)

但在这两种情况下它都不起作用,我收到一条错误消息“无法连接‘str’和‘int’对象”。连接两个 str 列工作得很好。

原文由 Malfet 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 784
1 个回答
In [16]: df = DataFrame(np.arange(10).reshape(5,2),columns=list('AB'))

In [17]: df
Out[17]:
   A  B
0  0  1
1  2  3
2  4  5
3  6  7
4  8  9

In [18]: df.dtypes
Out[18]:
A    int64
B    int64
dtype: object


转换系列

In [19]: df['A'].apply(str)
Out[19]:
0    0
1    2
2    4
3    6
4    8
Name: A, dtype: object

In [20]: df['A'].apply(str)[0]
Out[20]: '0'

不要忘记将结果分配回去:

 df['A'] = df['A'].apply(str)


转换整个框架

In [21]: df.applymap(str)
Out[21]:
   A  B
0  0  1
1  2  3
2  4  5
3  6  7
4  8  9

In [22]: df.applymap(str).iloc[0,0]
Out[22]: '0'

 df = df.applymap(str)

原文由 Jeff 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题