[英]Pad a column of strings in a pandas dataframe
我有一個像這樣的列中的字符串的pandas數據幀
id b
1 this is string1
1 this is string2
1 this is string3
1 this is string4
現在我想從列b的每個單元格中刪除第一個字符(t)。 我還需要添加一個角色s
在本專欄的開頭和結尾。 所以輸出應該是這樣的
id b
1 shis is string1s
1 shis is string2s
1 shis is string3s
1 shis is string4s
我知道我可以遍歷每一行並執行這些操作,但我在跳躍可能會有一些有效的方法。 也許我可以同時對b列的所有單元格應用相同的操作?
使用df.apply
更簡潔/靈活的方法:
df.b = df.b.str[1:].apply('s{}s'.format)
print(df)
id b
0 1 shis is string1s
1 1 shis is string2s
2 1 shis is string3s
3 1 shis is string4s
並且,要僅替換第一次出現的t
,請使用pd.Series.str.replace
:
df.b = df.b.str.replace('t', '', 1).apply('s{}s'.format)
print(df)
id b
0 1 shis is string1s
1 1 shis is string2s
2 1 shis is string3s
3 1 shis is string4s
In [6]: df.b = 's' + df.b.str[1:] + 's'
In [7]: df
Out[7]:
id b
0 1 shis is string1s
1 1 shis is string2s
2 1 shis is string3s
3 1 shis is string4s
如果你想要替換第一次出現的t
:
In [14]: df
Out[14]:
id b
0 1 test
1 2 a test
2 3 no occurences
In [15]: df.b = df.b.str.replace('t', '-', n=1)
In [16]: df
Out[16]:
id b
0 1 -est
1 2 a -est
2 3 no occurences
您可以像這樣替換第一個和最后一個字符:
df['b'] = df.b.str.replace('^.|$', 's')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.