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

Python只能合并某些列

颜嘉福
2023-03-14

是否可以只合并一些列?我有一个数据帧df1和列x、y、z,df2和列x、a、b、c、d、e、f等等。

我想合并x上的两个数据帧,但我只想合并df2. a、df2.b列——而不是整个数据帧。

结果将是一个包含x、y、z、a、b的数据帧。

我可以合并然后删除不需要的列,但似乎有更好的方法。

共有3个答案

范朗
2023-03-14

如果要从目标数据帧中删除列,但联接需要这些列,则可以执行以下操作:

df1 = df1.merge(df2[['a', 'b', 'key1']], how = 'left',
                left_on = 'key2', right_on = 'key1').drop(columns= ['key1'])

。drop('key1')part将阻止“key1”保留在生成的数据帧中,尽管它首先需要连接。

夹谷浩宕
2023-03-14

您可以合并子数据帧(仅合并这些列):

df2[list('xab')]  # df2 but only with columns x, a, and b

df1.merge(df2[list('xab')])
袁运良
2023-03-14

您需要使用两个括号,所以如果您正在执行VLOOKUP的操作:

df = pd.merge(df,df2[['Key_Column','Target_Column']],on='Key_Column', how='left')

这将为您提供原始df中的所有内容,在df2中添加您想要加入的相应列。

 类似资料:
  • Json.net有没有办法只指定你想要序列化的属性?或者根据绑定标志序列化某些属性,比如只声明? 现在我正在使用< code > JObject。FromObject(MainObj。SubObj);要获取SubObj的所有属性,SubObj是遵循ISubObject接口的类的实例: 如果是,它将序列化A和B,但如果是,它将仅序列化B和C并忽略父属性

  • 我已经为我的应用程序实现了shedlock,对于我们拥有的两台服务器来说,它运行良好,没有任何问题。 我们现在在另一个域上添加了两个新服务器,shedlock也会选择它们。(好吧,这就是它的本意) 我有一份工作,创建pdf文件并将其放在文件夹中。添加的新服务器无权访问这些文件夹。因此,当这两个新服务器选择作业时,我的作业将失败。 有没有可能告诉夏洛克从我的两台服务器中选择任何一台,或者不选择另外两

  • 我有一个熊猫数据框,有4行4列-这里是一个简单的版本: 我想做的是把它转换成一个2*8的数据帧,每个数组都有B、C和D——所以它看起来像这样: 在阅读熊猫文档时,我尝试了以下方法: 但是给了我一个错误,我无法识别源(以 DataError:没有要聚合的数字类型 ) 接下来,我想根据一个值分割数据帧,但我认为.groupby命令可能会处理它

  • 我正试图在后台获取用户位置。在我的手机(htc one m7)上一切都很好,但出于某种原因,它不能在我测试的两个设备上工作:三星galaxy s3索尼Xperia Z1 顺便说一句:我把所有东西都添加到了清单中。

  • 我正在尝试将Cloudflare设置为缓存来自S3的图像。我想在做这件事时尽可能地限制(最不宽容)。我假设我需要接受Cloudflare的请求来读取我的S3图像。我希望所有其他请求都被拒绝。 我遵循了这个指南:https://support.cloudflare.com/hc/en-us/articles/360037983412-Configuring-an-Amazon-Web-Service

  • 问题内容: 这个问题已经在这里有了答案 : 熊猫将一些列转换为行 (4个答案) 2年前关闭。 我有一个熊猫数据框,有4行4列-这是asimple版本: 我想做的是将其转换为2 * 8数据帧,并对每个数组使用B,C和D Alligng-因此它看起来像这样: 在阅读熊猫文档时,我尝试了以下方法: 但给我一个错误,我无法识别来源(结尾为 DataError:没有要聚合的数字类型 ) 接下来,我想基于A值