【问题标题】:Divide one "column" by another in Tab Delimited file在制表符分隔文件中将一个“列”除以另一个
【发布时间】:2017-08-31 10:55:05
【问题描述】:

我有许多包含三百万行的相同制表符分隔格式的文件。我需要做的就是将第14“列”中的数字除以第12“列”中的数字,然后将第14列中的数字设置为结果。

虽然这是一个非常简单的功能,但实际上我真的很想弄清楚如何实现它。我花了好几个小时搜索这个网站,但不幸的是,我看到的答案已经完全超出了我的想象,因为我是一个新手编码员!

我有 Notepad++ 和 Ultraedit(可以使用 Javascript,虽然我对此并不熟悉)和 Python 3.6(我有非常基本的 Python 知识)的工具。其他答案建议使用称为“awk”的东西,但是当我查找它时它需要 Unix - 我只有 Windows。完成这项工作的最佳工具是什么?我非常愿意学习新的东西。

【问题讨论】:

  • Notepad++ 等编辑器不会随心所欲地进行数学运算。这是一项编程(或脚本)工作。

标签: python notepad++ csv


【解决方案1】:

在 python 中有几种处理 csv 的方法。对于您的特定用例 我认为pandas 是您正在寻找的。​​p>

您可以使用df = pandas.read_csv() 加载文件,然后执行除法和替换将像df[13] /= df[11] 一样简单。

最后你可以用df.to_csv()将你的数据写回csv格式。

我把它留给你来填补 pandas 函数的缺失细节,但我保证它很容易,你可能会从学习它中受益很长时间。

希望对你有帮助

【讨论】:

  • 谢谢!我会给熊猫一个机会。使用这个问题作为学习更多编码的机会会很棒。它可以处理大量行吗?还是我需要使用任何编码技术将行“缓存”到内存中? (我有 8 GB 的 RAM)
  • 使用 pandas 应该没问题
  • 感谢您的帮助,我已经成功进入 Pandas 了!不幸的是,我为这篇文章赢得了负面声誉(不知道为什么!)但我一定会用不同的方式来表达未来的问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 2020-09-05
  • 1970-01-01
  • 1970-01-01
  • 2013-10-20
  • 1970-01-01
相关资源
最近更新 更多