ギリェルメ・レイス:
私はこの1つのようなパンダのデータフレームを持っています
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
私は、インデックスが列位置である手紙の中で下()関数を適用したいと思います。
私はもう試した:
df = df[0][df[1]].str.lower()
しかし、それは文字列全体を下げています。
ご協力いただきありがとうございます!
anky_91:
ここで、リスト内包表記であるslice
と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)