当前位置: 首页 > 面试题库 >

熊猫:将系列的数据类型更改为字符串

卫嘉佑
2023-03-14
问题内容

我将Pandas’ver 0.12.0’与Python 2.7结合使用,并具有如下数据框:

df = pd.DataFrame({'id' : [123,512,'zhub1', 12354.3, 129, 753, 295, 610],
                    'colour': ['black', 'white','white','white',
                            'black', 'black', 'white', 'white'],
                    'shape': ['round', 'triangular', 'triangular','triangular','square',
                                        'triangular','round','triangular']
                    },  columns= ['id','colour', 'shape'])

id系列由一些整数和字符串组成。它dtype在默认情况下是object。我想将的所有内容转换id为字符串。我试过了astype(str),产生下面的输出。

df['id'].astype(str)
0    1
1    5
2    z
3    1
4    1
5    7
6    2
7    6

1) 如何将的所有元素转换id为String?

2) 我最终将id用于为数据帧建立索引。与具有整数索引相比,在数据帧中具有String索引会降低速度吗?


问题答案:

您可以将id的所有元素转换为str使用apply

df.id.apply(str)

0        123
1        512
2      zhub1
3    12354.3
4        129
5        753
6        295
7        610

由OP编辑:

我认为这个问题与Python版本(2.7。)有关,这可行:

df['id'].astype(basestring)
0        123
1        512
2      zhub1
3    12354.3
4        129
5        753
6        295
7        610
Name: id, dtype: object


 类似资料:
  • 问题内容: 我开始用这个来扯头发-所以我希望有人可以帮忙。我有一个使用openpyxl从Excel电子表格创建的pandas DataFrame。产生的DataFrame看起来像: …具有以下数据类型: 问题是id列中的数字实际上是标识号,我需要将它们视为字符串。我尝试使用以下方法将id列转换为字符串: 这看起来有点丑陋,但它确实会产生类型为’object’而不是’float64’的变量: 但是,

  • 我有一个相当大的数据帧(11k行和20列)。其中一列的数据类型是混合的,主要是数字(float),其中有少量字符串分散在各处。 在使用混合列中的数据执行一些统计分析之前,我通过查询其他列来对该数据帧进行子集划分(但如果存在字符串,则无法执行此操作)。99%的时间,一旦子集这个列是纯数字的,但很少字符串值会在子集中结束,我需要捕获它。 通过Pandas混合类型列循环检查字符串(或者反过来检查整个列是

  • 问题内容: 我有一个包含字母数字键的数据框,我想另存为csv并在以后读取。由于种种原因,我需要以字符串格式显式读取此键列,所以我使用的键严格地是数字的,甚至更糟,例如:1234E5,Pandas会将其解释为浮点数。这显然使密钥完全无用。 问题是,当我为数据框或其中的任何列指定字符串dtype时,我只会得到垃圾回收。我在这里有一些示例代码: 数据框如下所示: 然后我像这样阅读: 结果是: 这是我的计

  • 我对熊猫有些陌生。我有一个熊猫数据框,是一行23列。 我想把它转换成一个系列?我想知道做这件事最像蟒蛇的方式是什么? 我试过pd。系列(我的结果),但它抱怨。它还没有聪明到意识到它仍然是数学术语中的“向量”。 谢谢!

  • 问题内容: 在pgsql中,有一种方法可以建立一个包含多个值的表,然后选择其中一个值(例如other_id),找出其最大值,并使表中的每个新条目都从该值开始递增。 我想这太容易了,没有机会工作。 非常感谢您的见解! 问题答案: 快速浏览一下文档会告诉您 数据类型smallserial, serial 和bigserial 不是真实类型, 而只是创建唯一标识符列的符号方便 如果你想使现有的(整数)列

  • 问题内容: 我想将数据框的索引(行)从float64更改为字符串或unicode。 我认为这会起作用,但显然不会: 错误信息: 问题答案: 您可以这样操作: 至于为什么将处理方式从int转换为float的原因不同,那就是numpy的特殊性(pandas所基于的库)。 每个numpy数组都有一个 dtype ,它基本上是其元素的 机器 类型:以这种方式, numpy直接处理本机类型 ,而不处理Pyt