当前位置:  开发笔记 > 编程语言 > 正文

将值分配给Pandas中的多个列

如何解决《将值分配给Pandas中的多个列》经验,为你挑选了2个好方法。

我遵循简单的DataFrame - df:

   0
0  1
1  2
2  3

一旦我尝试创建新列并为它们分配一些值,如下例所示:

df['col2', 'col3'] = [(2,3), (2,3), (2,3)]

我有以下结构

   0 (col2, col3)
0  1    (2, 3)
1  2    (2, 3)
2  3    (2, 3)

但是,我正在寻找一种方法来获取:

   0 col2, col3
0  1    2,   3
1  2    2,   3
2  3    2,   3

SpanishBoy.. 12

看起来解决方案很简单:

df['col2'], df['col3'] = zip(*[(2,3), (2,3), (2,3)])

虽然此代码可能会回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它.从长远来看,仅代码的答案无用. (2认同)

如果您有分配100列的优化解决方案,请随意分享. (2认同)

@shadowtalker,我*认为*还有一种更好的方法。.您可以将数据帧分配给'df [[''col2','col3']]]',请参阅我的答案。 (2认同)


jpp.. 6

有一个方便的解决方案,可以通过元组列表将多个序列连接到一个数据框。您可以分配之前从元组列表构造一个数据框:

df = pd.DataFrame({0: [1, 2, 3]})
df[['col2', 'col3']] = pd.DataFrame([(2,3), (2,3), (2,3)])

print(df)

   0  col2  col3
0  1     2     3
1  2     2     3
2  3     2     3

例如,当您希望加入任意数量的系列时,这很方便。



1> SpanishBoy..:

看起来解决方案很简单:

df['col2'], df['col3'] = zip(*[(2,3), (2,3), (2,3)])


虽然此代码可能会回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它.从长远来看,仅代码的答案无用.
如果您有分配100列的优化解决方案,请随意分享.
@shadowtalker,我*认为*还有一种更好的方法。.您可以将数据帧分配给'df [[''col2','col3']]]',请参阅我的答案。

2> jpp..:

有一个方便的解决方案,可以通过元组列表将多个序列连接到一个数据框。您可以分配之前从元组列表构造一个数据框:

df = pd.DataFrame({0: [1, 2, 3]})
df[['col2', 'col3']] = pd.DataFrame([(2,3), (2,3), (2,3)])

print(df)

   0  col2  col3
0  1     2     3
1  2     2     3
2  3     2     3

例如,当您希望加入任意数量的系列时,这很方便。

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有