为了账号安全,请及时绑定邮箱和手机立即绑定

如何在熊猫数据框中使用小写子字符串?

如何在熊猫数据框中使用小写子字符串?

回首忆惘然 2022-09-13 19:17:16
我有一个像这样的熊猫数据帧String = ["".join(np.random.choice(list("PQRSTUVXYZ"), size=7)) for _ in range(7)]Position = np.random.randint(2,7, size = 7)df=pd.DataFrame((String,Position)).T我想在索引为“位置”列的字母中应用 lower() 函数。我试过:df = df[0][df[1]].str.lower()但它正在降低整个字符串。感谢您的帮助!
查看完整描述

2 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

以下是切片和slice_replace的列表理解:


df['new'] = ([df[0].str.slice_replace(

             i,i+1,df[0].str.slice(i,i+1).iloc[e].lower()).iloc[e] 

             for e,i in enumerate(df[1])])

         0  1      new

0  TZPVTRT  2  TZpVTRT

1  VSSXYUP  3  VSSxYUP

2  YUTXTQS  2  YUtXTQS

3  SZRURSU  5  SZRURsU

4  XRXQVUP  3  XRXqVUP

5  PSQZZVV  6  PSQZZVv

6  XYYXPYV  3  XYYxPYV

注意 如果您的索引从 1 开始而不是 0 ,请将 替换为df[0].str.slice(i,i+1)df[0].str.slice(i-1,i)


查看完整回答
反对 回复 2022-09-13
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

您可以为字符串编制索引。将下部字符编入索引,将该字符变为较低字符,然后添加剩余的所有内容。真的与使用没有什么不同,但也许更具可读性。Series.str.slice_replace


df['new_str'] = [s[:i] + s[i].lower() + s[i+1:] for s,i in zip(df[0], df[1])]


         0  1  new_str

0  TTTQTYT  3  TTTqTYT

1  USRRUZS  2  USrRUZS

2  PPXQZZT  6  PPXQZZt

3  UZZVQRQ  3  UZZvQRQ

4  ZVUQPUV  6  ZVUQPUv

5  TRPPSVU  5  TRPPSvU

6  YYZPURQ  5  YYZPUrQ


查看完整回答
反对 回复 2022-09-13
  • 2 回答
  • 0 关注
  • 57 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信