当前位置: 首页 > 知识库问答 >
问题:

在python中连接数据帧的列(使用字符串值),类似于R[duplicate]中的paste0函数

祁正阳
2023-03-14

以下是输入数据

Type   Cat       Var         Dist    Count
@joy   A1 + B1  x + y + z   0:25:75    4
.cet   C1 + D1  p + q       50:50      2
sam    E1 + F1  g           100:3:2    10

以下是预期输出

Type   Cat       Var         Dist    Count   Output
@joy   A1 + B1  x + y + z   0:25:75    4    @joyA1 + B1x + y +z
.cet   C1 + D1  p + q       50:50      2    .cetC1 + D1p + q
sam    E1 + F1  g           100:3:2    10    samE1 + F1g

以下是我最后的尝试:

df.iloc[:,0:3].dot(['Type','Cat','Var'])

共有3个答案

慕才
2023-03-14

基本R:使用粘贴0

df$Output <- paste0(df$Type, df$Cat, df$Var)
  Type     Cat       Var    Dist Count                 Output
1 @joy A1 + B1 x + y + z 0:25:75     4 @joy A1 + B1 x + y + z
2 .cet C1 + D1     p + q   50:50     2     .cet C1 + D1 p + q
3  sam E1 + F1         g 100:3:2    10          sam E1 + F1 g

library(dplyr)
df %>% 
  mutate(Output = paste(Type, Cat, Var, sep = ""))
  Type     Cat       Var    Dist Count                 Output
1 @joy A1 + B1 x + y + z 0:25:75     4 @joy A1 + B1 x + y + z
2 .cet C1 + D1     p + q   50:50     2     .cet C1 + D1 p + q
3  sam E1 + F1         g 100:3:2    10          sam E1 + F1 g

或:

library(tidyr)
df %>% 
  unite(Output, c(Type, Cat, Var), remove=FALSE)
                  Output Type     Cat       Var    Dist Count
1 @joy_A1 + B1_x + y + z @joy A1 + B1 x + y + z 0:25:75     4
2     .cet_C1 + D1_p + q .cet C1 + D1     p + q   50:50     2
3          sam_E1 + F1_g  sam E1 + F1         g 100:3:2    10
仰成天
2023-03-14

您可以简单地使用:

df['Output']=df['Type']+' '+df['Cat']+' '+df['Var']

输出:

   Type      Cat        Var         Dist  Count                  output
0  @joy  A1 + B1  x + y + z  0.018229167      4  @joy A1 + B1 x + y + z
1  .cet  C1 + D1      p + q     50:50:00      2      .cet C1 + D1 p + q
2   sam  E1 + F1          g    100:03:02     10           sam E1 + F1 g
微生令
2023-03-14

你可以用

df['output'] = df['Type'].map(str) + df['Cat'].map(str) + df['Var].map(str)
 类似资料:
  • 我有一个数据集,我想根据该行的2或列值从数据框中删除行。例如-我有关于美国所有电视节目的数据帧,我需要根据电视节目的季节和剧集删除电视节目的特定行。就像我需要删除高谭市电视台的行,但只删除包含第四季和第十集的行。 如果我能在这方面得到帮助,我将不胜感激。

  • 我有一个事件日志数据框,每行是一个事件(如查看项目),其中包含列,,以及用户分配项目的。我想创建一个表示所有用户-项目交互的数据框:表示为二维矩阵,每个(i,j)表示用户i和项目j的分数(下图截图)。如果用户尚未看到该产品,则分配NaN。 我试过用循环做这件事,但正如预期的那样,运行时间太长: 有没有更快的方法? 根据评论中的要求,我的数据帧的头部<代码>事件类型与上述分数类似。

  • 有没有人知道从一个有多个列的主数据帧创建一个包含特定列信息的新数据帧的方法?我有一个主数据帧,我正在尝试对数据帧中的特定列运行各种测试(回归、方差分析等)。如有任何建议,将不胜感激。

  • 目标:基于另一个数据帧中的“键”更改一个数据帧中的NAs列(类似于VLookUp,但仅在R中除外) 这里给定df1(为了简单起见,我只有6行。我拥有的键是50个状态的50行): 这里给出了df2(这只是一个示例。我正在处理的真实数据帧有更多的行): 任务:创建一个R函数,该函数循环并读取每个df2$Article行中的状态;然后将其与df1$State\u Name交叉引用,根据df2$Artic

  • 我想从字符串中得到@后面的单词。“你好,我是@ayub,react的初学者”。要从@后面的字符串中获取该(ayub)。任何帮助。

  • 第一次问问题(温柔点),因为我还没有找到任何有用的东西。 在R中,我有两个数据帧。一个(DataFrameA)有一列带有唯一日期列表。另一个(DataFrameB)也有日期列表。但是DataFrameB中的某些日期在DataFrameA中可能不存在。在这种情况下,我想将DataFrameB中的日期更新为DataFrameA中的最小日期,该日期大于DataFrameB中的日期。 在SQL中,我可能会