在pandas datafram中使用单引号和另一列构建字符串

2024-10-17 16:31:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下列的数据帧:

grpby_sum_df.head()
Out[82]: 
   BusNumber PNode  participationFactor  normalized Contained by  \
0     242514  HQST                  1.0    0.000471         HQST   
1     242514  ISNE                  1.0    0.000471         ISNE   
2     242514  NBSO                  1.0    0.000471         NBSO   
3     242514  NSSO                  1.0    0.000471         NSSO   
4     242514  NYIS                  1.0    0.000471         NYIS   

  Initial Value    ParFac AutoCalc?  
0     SPECIFIED  0.000471        NO  
1     SPECIFIED  0.000471        NO  
2     SPECIFIED  0.000471        NO  
3     SPECIFIED  0.000471        NO  
4     SPECIFIED  0.000471        NO

我需要用单词gen创建另一个名为Object的列,后面是中间的busnumber列,用单引号括起来,number99也用单引号括起来。在

^{pr2}$

请告知。在


Tags: 数据nodfoutheadsumspecified单引号
3条回答

您只需:

df['object'] = "Gen " + df.BusNumber.map(str) + " 99"

输出(省略一些不相关的列):

^{pr2}$

这将添加您在问题中给出的列,即用空格分隔Gen 'BusNumber' '99',并用引号括起来

df['Object'] = "Gen '" + df['BusNumber'].astype('str') + "' '99'"

在pandas中,字符串操作有时非常慢,使用列表理解实际上可以获得更好的性能(如果性能相关)。

如果您使用的是python3.6+,并使用转义符(\)来包含您的单引号,则可以使用f字符串来完成此操作:

df['Object'] = [f'Gen \'{i}\' \'99\'' for i in df.BusNumber]

如果使用旧版本的python,则可以使用.format()

^{pr2}$

或者:

df['Object'] = ['Gen \'%s\' \'99\'' %i for i in df.BusNumber]

相关问题 更多 >