python – 如何将Pandas数据框中的多个列d出到新的数据框中?

python – 如何将Pandas数据框中的多个列d出到新的数据框中?,第1张

概述假设我有以下内容: df = pd.DataFrame({'a':range(2), 'b':range(2), 'c':range(2), 'd':range(2)}) 我想从数据帧“d出”两列(‘c’和’d’)到一个新的数据帧,在原始df中留下’a’和’b’.以下不起作用: df2 = df.pop(['c', 'd']) 这是我的错误: TypeError: '['c', 'd']' is 假设我有以下内容:

df = pd.DataFrame({'a':range(2),'b':range(2),'c':range(2),'d':range(2)})

我想从数据帧“d出”两列(‘c’和’d’)到一个新的数据帧,在原始df中留下’a’和’b’.以下不起作用:

df2 = df.pop(['c','d'])

这是我的错误:

TypeError: '['c','d']' is an invalID key

有没有人知道一个快速,优雅的解决方案,除了做以下?

df2 = df[['c','d']]df3 = df[['a','b']]

我知道上面的代码输入并不是那么繁琐,但这就是DataFrame.pop发明的原因 – 在数据库中d出一列时为我们省了一步.

解决方法 这将是一个两步过程(你不能解决这个问题,因为正如所提到的,pop适用于单个列并返回一个SerIEs).

首先,切片df(步骤1),然后删除这些列(步骤2).

df2 = df[['c','d']].copy()del df[['c','d']] # df.drop(['c','d'],axis=1,inplace=True)

这是使用pd.concat的丑陋替代方案:

df2 = pd.concat([df.pop(x) for x in ['c','d']],1)

这仍然是一个两步过程,但你是在一行中完成的.

df   a  b0  0  01  1  1df2   c  d0  0  01  1  1
总结

以上是内存溢出为你收集整理的python – 如何将Pandas数据框中的多个列d出到新的数据框中?全部内容,希望文章能够帮你解决python – 如何将Pandas数据框中的多个列d出到新的数据框中?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1191996.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存