簡體   English   中英

在pandas數據框中填充一列字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM