用Python标记数据(将数据转换为模式)

2024-10-02 02:30:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,如下所示:

Name      | City

Apple     | Tokyo
Papaya    | Pune
TimGru334 | Shanghai
236577    | Delhi

我需要遍历每个值,并需要在Python中标记数据。详细说明:

  • 对于值“Apple”,应将其转换为“ccccc”,其中c 表示字符。你知道吗
  • 对于'TimGru334',应转换为'ccccccddd'
  • 考虑值“236577”,它应该转换为“dddddd”,其中d表示数字/数字。你知道吗

有人能帮帮我吗?你知道吗

附言:我是新来的,所以请原谅我有什么错误。 提前感谢:)


Tags: 数据name标记cityapple数字字符tokyo
2条回答

使用^{}-首先是非数值,然后是数值-列表中值的顺序很重要:

df['Name'] = df['Name'].replace(['\D', '\d'], ['c','d'], regex=True)
print (df)
        Name      City
0      ccccc     Tokyo
1     cccccc      Pune
2  ccccccddd  Shanghai
3     dddddd     Delhi

如果需要替换所有列:

df = df.replace(['\D', '\d'], ['c','d'], regex=True)
print (df)
        Name      City
0      ccccc     ccccc
1     cccccc      cccc
2  ccccccddd  cccccccc
3     dddddd     ccccc

使用str.replace

df['Name'] = df['Name'].str.replace('\D', 'c').str.replace('\d', 'd')

现在:

print(df)

是:

        Name      City
0      ccccc     Tokyo
1     cccccc      Pune
2  ccccccddd  Shanghai
3     dddddd     Delhi

要完成所有列,请使用@jezrael的答案,否则请使用:

df = df.apply(lambda x: x.str.replace('\D', 'c').str.replace('\d', 'd'))

相关问题 更多 >

    热门问题