使用 Pandas 读取列数不规则的 CSV 文件

2023-12-03

我正在尝试读取一个 csv 文件,该文件不包含标题行,并且包含不确定数量的列和 pandas。

我已经搜索了如何解决这个问题,但是我找到的所有答案都要求我已经知道(通过打开文件进行搜索)列可以拥有的最大数量并创建一个names=属性上read_csv函数,像这样:

names = ["a", "b", "c", "d"]
table = pandas.read_csv('freqs.tsv', header=None, sep='\t+', names=names)

我的问题是,有没有可能的方法来做到这一点不知道最大列数?为了脚本将来的可重用性,我想概括一下是否可能。

这是我用来运行一些测试的示例文本文件:

mathematics         1.548438245 1.4661764369999999      1.429891562 
english                     1.237816576 1.043399455
physics         2.415563662 11.165497484000001  5.954598265 7.853732762999999   7.929835858
drama           2.0439384830000003  9.81210385  5.068332477 8.579349377 5.962282599999999
health                      1.557941553 1.222267933
science                         1.550193476
gym             1.240610831 1.149375944 1.899408195 1.3713249980000002

谢谢


我得到以下输出

0 1 2 3 4
mathematics 1.54844 1.46618 1.42989 nan nan
english 1.23782 1.0434 nan nan nan
physics 2.41556 11.1655 5.9546 7.85373 7.92984
drama 2.04394 9.8121 5.06833 8.57935 5.96228
health 1.55794 1.22227 nan nan nan
science 1.55019 nan nan nan nan
gym 1.24061 1.14938 1.89941 1.37132 nan

通过写:

import pandas as pd 
# Assume your data is in test.txt in the current working directory 
f = open("test.txt", "r")

# This assumes your spacing is arbitrary 
data = [line.split() for line in f]
data = {line[0] : [float(item) for item in line[1:]] for line in data}
# The orient = "index" allows us to handle differing lengths of entries
df = pd.DataFrame.from_dict(data, orient="index")

# this just provides the above table for printing in StackOverflow
print(df.to_markdown()) 

请注意,我假设文件中的间距是任意的,因此我们不需要跟踪哪些列是空的,我们只需按空格分割并保留值即可。

另请注意nan表示“不是数字”,如果您有不同长度的行,则您应该在数据框中看到它。

最后,如果您希望主题作为列,请使用df = df.transpose().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Pandas 读取列数不规则的 CSV 文件 的相关文章

随机推荐

  • JS:获取contentEditable div中所有选定节点的数组

    你好 我使用 contentEditable 已经有一段时间了 我想我已经很好地处理它了 我回避的一件事是如何获取对部分或完全在用户选择范围内的所有节点的引用数组 有人有主意吗 可以从以下几点开始
  • 导航到不同的 html 页面时,jQuery Mobile 页面事件不会触发

    我正在尝试使用导航到不同的 html 页面 mobile changePage PlayGame html transition slideup true true PlayGame html 正在转换为 但是 以下内容均未触发 docum
  • 我们如何在单个 JSF 页面中使用多个 标记或 标记?

    我的问题是 我在一个 JSF 页面中有 2 个表单 每个表单都有其
  • 如何使用 UIGestureRecognizer 检测圆周运动

    我希望能够检测到某人的手指在屏幕上画圆周运动 就像他们在画 O 一样 这可以通过 UIGestureRecognizer 实现吗 我认为这个问题的答案取决于您对圆周运动的定义以及您打算如何使用它 例如 您想知道用户手指沿着圆移动了多少度 或
  • 根据变量值生成数据总和

    我有类似这样的数据 Hosp Score Var1 Var2 Var3 1 0 5 3 0 1 1 10 8 1 1 2 11 8 2 1 3 5 3 2 2 0 6 4 0 2 2 10 6 1 2 3 10 7 2 3 1 4 3 2
  • 当条件不满足时重置 pandas cumsum [重复]

    这个问题在这里已经有答案了 我经历了不同的 stackoverflow 问题并最终发布它 因为我无法解决我面临的问题之一 我有一个如下所示的数据框 A B C group1 group1 c 12 group1 group1 c 12 gr
  • 从 PostgreSQL 函数运行 Python 脚本

    每次在 PostgreSQL 表上执行更新或插入操作时 我都面临一个 小 问题 该脚本将提取更新或插入的数据并将其写入文件 环境数据 乌班图18 04 仿生海狸 PostgreSQL 10 和 Python 3 6 SELECT FROM
  • MinGW64 无法进行 32 字节堆栈对齐(Windows x64 上的 AVX 所需),轻松解决或切换编译器?

    我正在尝试使用 AVX 指令和 Windows 64 位 我对 g 编译器很满意 所以我一直在使用它 但是 报告了一个大错误here并提出了非常粗略的解决方案here 基本上 m256 变量无法在堆栈上对齐才能与 avx 指令一起正常工作
  • 如何确定OGG文件的长度

    我正在制作节奏游戏 我需要一种快速方法来获取 ogg 文件的长度 我能想到的唯一方法是非常快速地传输文件而不播放它 但如果我有数百首歌曲 这显然是不切实际的 另一种方法是将文件的长度存储在某种属性文件中 但我想避免这种情况 我知道一定有某种
  • 无法在模拟器中启动 AVD:未找到 QT 库

    我是 Android Studio 新手 在使用模拟器时遇到问题 当我尝试运行时 它不断崩溃并显示 无法在模拟器中启动 AVD 6816 错误 android qt qt setup cpp 28 在以下位置找不到 Qt 库 C Users
  • Cocoa Interface Builder 的“属性检查器”类似窗口

    我正在制作一个 Cocoa 应用程序 我想要一个像 Interface Builder 中的 属性检查器 这样的面板 因此 顶部有大标签和可折叠 可展开的组 有谁知道我该怎么做 这是属性检查器的图像 属性检查器 http developer
  • PHP mysqli_fetch_all 给我一个空白屏幕

    我刚刚将一些内容从本地计算机推送到实时站点 但到处都是空白页面 当我使用所有东西时 我将问题追踪到 mysqli fetch all 它为什么要这样做 我该如何解决它 如果我使用 mysqli fetch array 或 mysqli fe
  • 如何在 Flutter 中解码 JSON?

    如何在 Flutter 中解码 JSON 问题很简单 但答案却不简单 至少对我来说是这样 我有一个使用大量 JSON 字符串的项目 基本上 应用程序和服务器之间的整个通信都是通过 JSON 进行的 我一直在使用JSON decode jso
  • 使用 GPUImage 过滤视频

    我在用着GPUImage在我的应用程序中并尝试过滤视频 实时视频过滤效果良好 当我尝试从文件系统将视频读入内存并使用发布在日落湖软件教程页面和 SimpleVideoFileFilter 演示中 EDIT 我意识到我原来的帖子可能没有提出足
  • pop_back()返回值?

    为什么不pop back 有返回值吗 我用谷歌搜索了一下这个问题 发现它可以提高效率 这是标准中如此规定的唯一原因吗 效率与之几乎没有关系 或者实际上没有关系 这个设计的结果是汤姆 卡吉尔的一篇重要论文上世纪 90 年代出版 当时引起了相当
  • Go类型用于函数调用

    关键词如go and defer期待一个函数调用作为参数 是否有可用的类型可以以相同的方式使用 例如 编写一个需要函数调用 而不是函数 作为参数的函数 不 那里没有 你不能对你的函数做同样的事情 go and defer由语言规范支持 并且
  • 授权从 Firebase Cloud Function 访问 Google Cloud Translate?

    我正在尝试编写一个调用 Google Cloud Translate 的 Firebase Cloud Function 我收到此错误 Error 7 PERMISSION DENIED Cloud IAM permission cloud
  • 使用离子和材料设计登录

    我有一个带有侧面菜单等的离子项目 现在我想以简单的方式添加并登录很酷的表单 例如http ionicmaterial com 但问题是我没有看到任何示例如何将其添加到令人兴奋的项目中 它将首先加载登录表单 然后重定向到常规页面 我的项目看起
  • 将一个整数随机分为 n 部分,可能的结果为零

    如何将一个整数随机划分为 n 个部分 且可能的结果为零 最好是R语言 例如 要将整数 5 分成 3 部分并执行 4 次 我可能会得到以下输出 1 4 0 1 2 2 2 1 3 0 2 3 4 1 1 3 Thanks library pa
  • 使用 Pandas 读取列数不规则的 CSV 文件

    我正在尝试读取一个 csv 文件 该文件不包含标题行 并且包含不确定数量的列和 pandas 我已经搜索了如何解决这个问题 但是我找到的所有答案都要求我已经知道 通过打开文件进行搜索 列可以拥有的最大数量并创建一个names 属性上read