在 python 中的数据列之间添加文本

Adding text between data column in python

我有df,

   Names    Values  TC
   Ram      2      TC Count
   pechi    2      TC Count
   Sunil    1      TC Count
   Ravi     1      TC Count
   sri      1      TC Count

我想在数据列之间添加一些文本

我试过 df.join 但不能正常工作,

我的预期输出是,

df,

Names    Values  
Ram      val2balTCcount   
pechi    val2balTCcount         
Sunil    val1balTCcount         
Ravi     val1balTCcount         
sri      val1balTCcount   

提前致谢!

使用:

  • 通过astype
  • 将所有数字列转换为字符串
  • replace白spaces由空space

df['Values'] = 'val' + df['Values'].astype(str) + 'bal' + df['TC'].str.replace('\s+', '') 
print (df)
   Names          Values        TC
0    Ram  val2balTCCount  TC Count
1  pechi  val2balTCCount  TC Count
2  Sunil  val1balTCCount  TC Count
3   Ravi  val1balTCCount  TC Count
4    sri  val1balTCCount  TC Count

如果需要删除 TC 列,请使用 pop:

df['Values'] = 'val' + df['Values'].astype(str) + 'bal' + df.pop('TC').str.replace('\s+', '')
print (df)
   Names          Values
0    Ram  val2balTCCount
1  pechi  val2balTCCount
2  Sunil  val1balTCCount
3   Ravi  val1balTCCount
4    sri  val1balTCCount

您可以将 pd.Series.str.catpd.Series.applystr.format

一起使用
df.drop('TC', 1).assign(
    Values=df.Values.apply('val{}bal'.format)
             .str.cat(df.TC.str.replace(' ', '')))

   Names          Values
0    Ram  val2balTCCount
1  pechi  val2balTCCount
2  Sunil  val1balTCCount
3   Ravi  val1balTCCount
4    sri  val1balTCCount

尽管 pd.Series.cat 可以替换为 +

df.drop('TC', 1).assign(
    Values=df.Values.apply('val{}bal'.format)
          + df.TC.str.replace(' ', ''))

   Names          Values
0    Ram  val2balTCCount
1  pechi  val2balTCCount
2  Sunil  val1balTCCount
3   Ravi  val1balTCCount
4    sri  val1balTCCount