You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Pandas DataFrame的整数与字符串列元素添加单引号并生成新列

给Pandas DataFrame的整数和字符串列元素添加单引号的解决方案

我明白你想要给DataFrame里的整数列和字符串列分别生成带单引号的新列,之前尝试的方法没起作用对吧?别担心,这里有几个简单可靠的方法能帮你搞定~

方法一:使用apply配合lambda函数

这是最直观的写法,针对不同类型的列分别处理:

import pandas as pd

data = {"id": [101, 102, 103, 104, 105], "person": ['Ty', 'Al', 'Lou', 'Tao', 'Mick']}
df = pd.DataFrame(data)

# 处理整数列:先转字符串再包裹单引号
df['id_with_quotes'] = df['id'].apply(lambda x: f"'{x}'")
# 处理字符串列:直接给元素前后加单引号
df['person_with_quotes'] = df['person'].apply(lambda x: f"'{x}'")

print(df)

方法二:矢量化字符串拼接(更高效)

如果你的数据量比较大,推荐用这种矢量化操作,比apply速度更快:

# 整数列需要先转成字符串类型,再拼接单引号
df['id_with_quotes'] = "'" + df['id'].astype(str) + "'"
# 字符串列直接拼接即可
df['person_with_quotes'] = "'" + df['person'] + "'"

为什么你之前的代码没生效?

咱们来扒一扒之前代码的问题:

  • for x in df遍历的是DataFrame的列名,不是列里的元素,所以x拿到的是'id'和'person'这两个字符串,不是你要处理的数值或人名。
  • np.savetxt是用来把数组写入文件的工具,完全不适合用来给单个元素加引号,而且你根本不需要把数据存到文件里,直接在DataFrame内处理就好。
  • x.append(id_in_quotes)这里,x是列名字符串,根本没有append方法,自然会报错。

最终效果

运行上面的代码后,你会得到包含四列的DataFrame,完全符合你的需求:

id person id_with_quotes person_with_quotes
0  101     Ty          '101'              'Ty'
1  102     Al          '102'              'Al'
2  103    Lou          '103'             'Lou'
3  104    Tao          '104'             'Tao'
4  105   Mick          '105'            'Mick'

内容的提问来源于stack exchange,提问作者BrianBeing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:53:43