python - 使用 pandas DataFrame 将 2 列连接到新短语列中

标签 python pandas dataframe

我有一个像这样的数据框:

>>> df = pd.DataFrame({'id_sin':['s123','s124','s125','s126','s127'],
                   'num1':[12,10,23,6,np.nan],
                   'num2':['BG','TC','AB','RC',np.nan],
                   'fr':[1,1,1,1,0],
})
>>> df
   fr id_sin  num1 num2
0   1   s123    12   BG
1   1   s124    10   TC
2   1   s125    23   AB
3   1   s126     6   RC
4   0   s127   NaN  NaN

我想在这样的短语中连接列 num1num2 (num2 is num1) ,其中 fr 为 1:

   fr id_sin  num1 num2    phrase
0   1   s123    12   BG  BG is 12
1   1   s124    10   TC  TC is 10
2   1   s125    23   AB  AB is 23
3   1   s126     6   RC   RC is 6

我尝试了这个但不起作用:

df['phrase'] = str(df['num2']) + ' is ' + str(df['num1'])

最佳答案

编辑:
如果您希望 num1 没有小数 .0,请将其转换为 Int64:

df.num1 = df.num1.astype('Int64')

Out[32]:
  id_sin  num1 num2  fr
0   s123    12   BG   1
1   s124    10   TC   1
2   s125    23   AB   1
3   s126     6   RC   1
4   s127   NaN  NaN   0

尝试Series.str.cat

df.num2.str.cat(df.num1.astype(str), sep=' is ')

Out[2055]:
0    BG is 12
1    TC is 10
2    AB is 23
3     RC is 6
4         NaN
Name: num2, dtype: object
<小时/>

关于@rafael 评论。他的作品,只是其中的错别字造成了错误。它是:

dn['num2'].astype(str) + ' is ' + dn['num1'].astype(str)

关于python - 使用 pandas DataFrame 将 2 列连接到新短语列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56174211/

相关文章:

python - Jupyter 笔记本中的 numpy 和 pandas 'ModuleNotFoundError' (Python 3)

python - 通过SNR检测脑电图数据中的α波? Python

python - 如何获取 pandas 数据框,其中列是另一个列数据框的后续 n 元素?

Python:将自定义函数应用于数据框中的多个指定列

python - 在 PySpark 中将 Spark DataFrame 从行转换为列,并将其附加到另一个 DataFrame

python - PyPlot 不绘制图像

Python拆分字符串并混淆中间

python - 复制可粘贴的 DataFrame 表示

python - pandas diff() 为一阶差分给出 0 值,我想要实际值

python - 如何从 Pandas 数据框中删除方括号