将 Pandas 列表列拆分为多列

2023-12-30

我有一个带有一列的 Pandas DataFrame:

import pandas as pd

df = pd.DataFrame({"teams": [["SF", "NYG"] for _ in range(7)]})

       teams
0  [SF, NYG]
1  [SF, NYG]
2  [SF, NYG]
3  [SF, NYG]
4  [SF, NYG]
5  [SF, NYG]
6  [SF, NYG]

如何将这一列列表分成两列?

期望的结果:

  team1 team2
0    SF   NYG
1    SF   NYG
2    SF   NYG
3    SF   NYG
4    SF   NYG
5    SF   NYG
6    SF   NYG

您可以使用DataFrame构造函数与lists由...制作to_list https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.to_list.html:

import pandas as pd

d1 = {'teams': [['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],
                ['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG']]}
df2 = pd.DataFrame(d1)
print (df2)
       teams
0  [SF, NYG]
1  [SF, NYG]
2  [SF, NYG]
3  [SF, NYG]
4  [SF, NYG]
5  [SF, NYG]
6  [SF, NYG]

df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       teams team1 team2
0  [SF, NYG]    SF   NYG
1  [SF, NYG]    SF   NYG
2  [SF, NYG]    SF   NYG
3  [SF, NYG]    SF   NYG
4  [SF, NYG]    SF   NYG
5  [SF, NYG]    SF   NYG
6  [SF, NYG]    SF   NYG

而对于一个新的DataFrame:

df3 = pd.DataFrame(df2['teams'].to_list(), columns=['team1','team2'])
print (df3)
  team1 team2
0    SF   NYG
1    SF   NYG
2    SF   NYG
3    SF   NYG
4    SF   NYG
5    SF   NYG
6    SF   NYG

解决方案与apply(pd.Series)非常慢:

#7k rows
df2 = pd.concat([df2]*1000).reset_index(drop=True)

In [121]: %timeit df2['teams'].apply(pd.Series)
1.79 s ± 52.5 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [122]: %timeit pd.DataFrame(df2['teams'].to_list(), columns=['team1','team2'])
1.63 ms ± 54.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Pandas 列表列拆分为多列 的相关文章

随机推荐

  • 是整数吗?值类型还是引用类型? [复制]

    这个问题在这里已经有答案了 这个问题更多的是关于添加一个 到一个值类型而不是大约int 在 C 中int是一个值类型 是int 值类型还是引用类型 在我看来它应该是一个参考类型 因为它可以null int 相当于Nullable
  • 自 iOS 10.3 起,discoverAllIdentities 和 discoveryUserIdentity 对于 CKUserIdentity.lookupInfo 返回 nil

    CKContainer discoverAllIdentities completionHandler discoveryUserIdentity recordID 完成处理程序返回 CKUserIdentity 但 lookupInfo
  • 使用 Python 在 Parquet 中嵌套数据

    我有一个文件 每行一个 JSON 这是一个示例 product id abcdef price 19 99 specs voltage 110v color white user Daniel Severo 我想创建一个包含以下列的镶木地板
  • Haskell:应用多态函数两次

    我们可以有一个多态函数f a gt b为不同的对实施a and b 我们怎样才能使 twice a gt b gt a gt c twice f x f f x 类型检查 即我怎样才能编写一个应用a的函数多态性功能两次 With Rank2
  • Android Studio 4.2.1 jarsigner 现在在哪里?

    我正在使用 Android Studio 的嵌入式 JDK C Program Files Android Android Studio jre 并且我正在使用jarsigner其中 jre bin jarsigner exe 按照描述签署
  • 应使用哪个提供程序来实现 Java Persistence API (JPA) [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想为我的 Web 应用程序使用 Java Persistence API JPA 有流行的 JPA 实现 例如休眠 Toplink and E
  • 如何删除docker0接口

    我想删除 docker0 接口 启动服务时最好避免创建接口docker0 直接使用eth0 要删除接口 请使用 ip link delete docker0 您可能需要sudo特权
  • 如何返回 ASP.NET MVC 视图中的当前操作?

    我想在我的母版页中设置一个 CSS 类 它取决于当前的控制器和操作 我可以通过以下方式访问当前控制器ViewContext Controller GetType Name 但是我如何获得当前的操作 例如Index Show etc 在 RC
  • 如何设置 Popover 视图以正确关闭

    经过一番工作后 我得到了一个弹出视图 其中显示了一个自定义 uiview 显示正确 当您点击弹出窗口视图之外时 它会按预期关闭 但是我也希望它在点击其中的按钮时关闭 有谁可以帮助我吗 努力寻找简明指南 要手动关闭弹出窗口 您需要保留对它的引
  • 如何将 Membership Provider 与 Angular.js 和 ASP.Net MVC 4 结合使用?

    我对 Angular js 非常陌生 我想使用 Angular JS 和 ASP Net MVC4 创建一个新项目 我真的很困惑如何将 Angular JS 与 MVC 4 成员资格提供程序一起使用来执行用户身份验证和授权 我可以查看一些示
  • 类型错误:意外的关键字参数传递给优化器:learning_rate

    我正在尝试加载在 Azure VM 上训练的 Keras 模型 NC 促销版 但我收到以下错误 类型错误 意外的关键字参数传递给优化器 learning rate EDIT 这是我用来加载模型的代码片段 from keras models
  • 使用RAD清理工作空间环境的方法(基于Eclipse)

    启动 RAD7 时出现很多错误 服务器不响应类更改 有时服务器无法启动 有时 RAD 不会确认我添加到服务器的模块 这是一种越野车 我知道工作区中有元数据 是否有安全的方法来清理元数据或 RAD 其中 RAD Rational Applic
  • 检查 Elixir 中的 URL 是否有效

    我想检查给定的 URL 是否有效 最好是该 url 也能解析 首先 我将如何检查字符串有效性 即正则表达式 其次 有没有办法可以查看 URL 是否确实解析为互联网上的资源 Thanks 我不会使用正则表达式 而是使用 URI 包以文本方式验
  • 在 JSF 中使用复合组件在视图中重复组件 ID

    我在公司 继承 了一个 JSF 2 JSF 2 2 7 应用程序 并面临 java lang IllegalStateException 因为两个组件似乎具有相同的 ID 视图的结构如下 我提取了相关代码用于说明目的 它可能包含一些拼写错误
  • 仅当不通过 XCode 运行时,iOS 才会崩溃。巧合?

    我的应用程序仅在不使用 XCode 调试器运行时才会崩溃 很难跟踪 因为我无法调试 但我终于弄清楚了 这是因为对一些不属于我的对象调用了release 在我更正之前 我在这里搜索并发现了 2 个相关问题 链接如下 iOS 应用程序在设备上单
  • git 上有用于重置后的钩子吗?

    我有一些所有开发人员都必须更改的本地文件 我将文件标记为 假设未更改 但这并不能阻止它们在重置时发生更改 git 上是否有一个在 git 重置后执行的钩子 如果没有 有人对如何处理这种情况有建议吗 您可以找到以下列表Git 挂钩在这里 ht
  • 如何在 VC++ 中重新启动我自己的应用程序

    正在开发 VC 应用程序 弄清楚如何重新启动我自己的应用程序 有人可以举一些例子吗 编写一个程序 它将 等待您的应用程序终止 再次运行它 调用该程序 然后退出您的应用程序 该解决方案应用相当广泛 另外一个选择 使用特定参数调用您的应用程序
  • 使用分页集合时的 ​​Angularjs 承诺链

    我正在使用一个 REST api 它为 GET 请求提供分页响应 如下所示 count 43103 previous null next http ecoengine berkeley edu api photos page 2 resul
  • Android Studio 和 Gradle,@NotNull 参数的参数 0

    我正在尝试在 Android Studio 中使用 Gradle 制作一个应用程序 但我收到的只是以下错误消息 java lang IllegalArgumentException Argument 0 for NotNull parame
  • 将 Pandas 列表列拆分为多列

    我有一个带有一列的 Pandas DataFrame import pandas as pd df pd DataFrame teams SF NYG for in range 7 teams 0 SF NYG 1 SF NYG 2 SF