Pandas 按列将 CSV 拆分为多个 CSV(或 DataFrame)

2023-11-23

我对一个问题感到非常困惑,如果有一些帮助或提示,我将不胜感激。

问题:我有一个 csv 文件,其中有一列可能有多个值,例如:

Fruit;Color;The_evil_column
Apple;Red;something1
Apple;Green;something1
Orange;Orange;something1
Orange;Green;something2
Apple;Red;something2
Apple;Red;something3

我已将数据加载到数据框中,并且需要根据“The_evil_column”列的值将该数据框拆分为多个数据框:

df1
Fruit;Color;The_evil_column
Apple;Red;something1
Apple;Green;something1
Orange;Orange;something1

df2
Fruit;Color;The_evil_column
Orange;Green;something2
Apple;Red;something2

df3
Fruit;Color;The_evil_column
Apple;Red;something3

阅读了一些帖子后,我更加困惑,我需要一些关于此的提示。


您可以生成 DataFrame 的字典:

d = {g:x for g,x in df.groupby('The_evil_column')}

In [95]: d.keys()
Out[95]: dict_keys(['something1', 'something2', 'something3'])

In [96]: d['something1']
Out[96]:
    Fruit   Color The_evil_column
0   Apple     Red      something1
1   Apple   Green      something1
2  Orange  Orange      something1

或数据框列表:

In [103]: l = [x for _,x in df.groupby('The_evil_column')]

In [104]: l[0]
Out[104]:
    Fruit   Color The_evil_column
0   Apple     Red      something1
1   Apple   Green      something1
2  Orange  Orange      something1

In [105]: l[1]
Out[105]:
    Fruit  Color The_evil_column
3  Orange  Green      something2
4   Apple    Red      something2

In [106]: l[2]
Out[106]:
   Fruit Color The_evil_column
5  Apple   Red      something3

UPDATE:

In [111]: g = pd.read_csv(filename, sep=';').groupby('The_evil_column')

In [112]: g.ngroups   # number of unique values in the `The_evil_column` column
Out[112]: 3

In [113]: g.apply(lambda x: x.to_csv(r'c:\temp\{}.csv'.format(x.name)))
Out[113]:
Empty DataFrame
Columns: []
Index: []

将产生3个文件:

In [115]: glob.glob(r'c:\temp\something*.csv')
Out[115]:
['c:\\temp\\something1.csv',
 'c:\\temp\\something2.csv',
 'c:\\temp\\something3.csv']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas 按列将 CSV 拆分为多个 CSV(或 DataFrame) 的相关文章

随机推荐

  • C# 正确格式化(缩进、对齐)C#

    我们有一个代码生成器munges给定数据库的模式 用于自动化我们内部的 n 层架构 输出是各种 C 部分类 每个文件一个 在处理所有字符串的代码中 我们尝试尽可能地控制缩进和格式 但当您在 Visual Studio 中打开文件时 格式总是
  • 逐行读取文件并分割值

    我需要读取一个txt文件 其组成如下 AA 1000 AA 320009 999999 AA 1011 AA 320303 111111 对于每个读取的行 我需要用 将其分割以到达第一回合 test 0 AA 1000 AA 320009
  • 调用 savechanges 时实体框架复制

    我首先使用entityframework 5代码 我有一个这样的模型 class Product public Product Fabrics new BindingList
  • 如何在Spring 3.0应用程序中配置Hibernate统计信息?

    我们如何配置以便在基于 Spring MVC 的 Web 应用程序中通过 JMX 获取 Hibernate 统计信息 有没有更好的方法来跟踪 Hibernate 性能 Set hibernate generate statistics to
  • Cakephp 2.0 使用电子邮件而不是用户名进行身份验证

    在我看来我有 在我的应用程序控制器中 public components array
  • ZF2中同一模块下的多个命名空间

    我在同一模块下配置多个命名空间 类时遇到问题 例如 我有一个名为 Account 的模块 其中我想包含所有与帐户相关的类 公司 accounts 用户 users 外部 api api 等 模块结构看起来像这样 Account Module
  • Base64 图像不显示在 RDLC 报告的渲染 PDF 上

    我正在尝试使用参数 CustomerSign 在 RDLC 报告中 我正在从报告中渲染 PDF 文件 并且看到 PDF 文件 我已配置图像属性如下 选择图像源 Database 使用该字段 Convert FromBase64String
  • 为什么 Objects.hash() 对于相同的输入返回不同的值?

    我运行了以下脚本 java 它给了我奇怪的结果 有谁可以帮忙解释一下吗 import java util Objects import org apache log4j Logger public class CacheTester pri
  • -D MACRO 和 #define MACRO 的优先级

    如果我有一个C文件 foo c 虽然我已经给出了 DMACRO 1作为编译的命令行选项 但是 如果在头文件中我也有 define MACRO 2 其中哪一个会优先 我正在假设您正在做什么 但是如果您想从命令行为该宏提供非默认值 请尝试对宏定
  • 多线程访问文件

    我们有一个多线程java程序 多个线程将写入一个文件 一个线程将从该文件中读取 我正在寻找一些设计想法 是否需要同步 文件通道理论上是线程安全的 来自javadoc 文件通道可供多个并发线程安全使用 这 close 方法可以随时调用 具体由
  • 读取套接字时Java中断线程[重复]

    这个问题在这里已经有答案了 可能的重复 如何立即终止阻塞在套接字IO操作上的线程 我有一个客户端在线程中运行 想要从 Java 中的套接字读取数据 但在阅读时 也许我想杀死线程 所以我interrupt它 但是套接字的读取方法会抛出异常吗I
  • 如何在 jQuery 中循环遍历数组?

    我正在尝试循环遍历一个数组 我有以下代码 var currnt image list 21 32 234 223 var substr currnt image list split array here 我正在尝试从数组中获取所有数据 有
  • C# - 捕获鼠标光标图像

    背景 我正在编写一个屏幕捕获应用程序 我的代码基于此项目 http www codeproject com KB cs DesktopCaptureWithMouse aspx display Print 请注意 代码还捕获了鼠标光标 这对
  • PHP iOS AES 加密

    我在尝试使用 AES 加密在 PHP 和我的 iOS 应用程序之间进行通信时遇到了问题 到目前为止 我已经考虑了两种实现方法 第一个是使用 OpenSSL 在 iOS 方面 我以模仿此处显示的代码的方式实现 http saju net in
  • 如果向下滚动经过它,则有一个 div 紧贴在屏幕顶部[重复]

    这个问题在这里已经有答案了 我有一个 div 当我的页面首次加载时 它距离顶部大约 100px 它包含页面的一些按钮等 当用户滚动经过它时 我希望 div 跟随 用户 因为它附加到屏幕顶部 当用户返回到页面顶部时 我希望它回到原来的位置 V
  • 如何使用 CSS 删除没有 html 标签的字符串

    我需要删除没有的字符串html tag 例如 div class A a href class link keep this a and i want to remove this div 我可以只使用 css 来做到这一点吗 也许你可以使
  • Eclipse + Maven + JavaServer Faces -> ClassNotFoundException:StartupServletContextListener

    Summary 当我尝试从 Eclipse 中 在 Tomcat 7 0 上 运行 JSF 2 0 应用程序时 出现以下异常 Problem SEVERE Error configuring application listener of
  • 消除解析器精神规则中的左递归 x3

    我目前陷入了一条规则 我试图使用 boostspirit x3 来解析 这是我要解析的 EBNF 使用 Spirit 中的 运算符作为列表 type class type lambda type lambda type more arg l
  • “NoMethodError:[:not(.block-layered-nav)]:Array的未定义方法‘特异性’”

    这是对这篇文章的补充 无法在 Magento CE 1 9 中编译 rwd 皮肤 SCSS Windows 8 1 PowerShell Compass 1 0 1 Polaris Sass 3 4 6 Selective Steve ru
  • Pandas 按列将 CSV 拆分为多个 CSV(或 DataFrame)

    我对一个问题感到非常困惑 如果有一些帮助或提示 我将不胜感激 问题 我有一个 csv 文件 其中有一列可能有多个值 例如 Fruit Color The evil column Apple Red something1 Apple Gree