python - 根据条目长度将字符串添加到列
问题描述
我有一个df:
1.colour code
2.red 1234
3.blue 234
4.yellow 4567
5.green 456
带有列,并且还需要根据条目的长度添加一个字符串。我努力了:
i = 0
mylist = df['code']
mystring3 = ('D')
mystring4 = ('B')
for i in range(len(mylist)):
if len(mylist[i]) == 3:
mylist[i] = mystring3 + mylist[i]
else:
mylist[i] = mystring4 + mylist[i]
i+=1
这需要很长时间,我失去了我的颜色列的位置。即使重复,我如何保持位置非常感谢J
解决方案
您可以使用apply
(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.apply.html)来完成预期的工作。
我在第一次拥有该列的数据类型时添加了str()
周围。x
int
code
df = pd.DataFrame({'colour':['red','blue','yellow','green'],'code':['1234','234','4567','456']})
df['code'] = df['code'].apply(lambda x: 'D' + str(x) if len(str(x)) == 3 else 'B' + str(x))
print(df)
结果:
colour code
0 red B1234
1 blue D234
2 yellow B4567
3 green D456
像这样,您还可以添加一个新列并仍然保留旧列:
df = pd.DataFrame({'colour':['red','blue','yellow','green'],'code':['1234','234','4567','456']})
df['code_new'] = df['code'].apply(lambda x: 'D' + str(x) if len(str(x)) == 3 else 'B' + str(x))
print(df)
新结果:
colour code code_new
0 red 1234 B1234
1 blue 234 D234
2 yellow 4567 B4567
3 green 456 D456
推荐阅读
- python - 使用 Python mkdtemp() 解压缩到临时(内存中)目录?
- sql - 在oracle中将字符串转换为字符
- python - 使用 python 和 beautifulSoup 抓取网页的奇怪结果
- reactjs - ASP.Net Core 反应部署到 IIS 作为应用程序
- mysql - Unable to import all values from google sheets to sql
- javascript - 从另一个 IDE 复制 HTML 代码会显示不同的输出
- vue.js - 在输入字段搜索vuejs上单击按钮(X)时如何执行功能
- sql - sql 当我有一个包含多条记录的列的表时
- flutter - 如何通过颤振将导航器与isSelected一起使用
- java - Facebook Audience Network SDK 文件太大