在Python中合并具有不同文件名的CSV文件[关闭]

2024-02-14

我对Python真的很陌生,所以这个问题可能有点基础。我有 44 个 csv 文件,它们具有相同的标题和不同的文件名。我想将它们全部合并到一个文件中。

每个文件名为“Votes-[member-name]-(2010-2014)-[download-time].csv”

标题不包含成员名称列。我想将其添加为第一项。

这完成了我想做的部分事情:如何在Python中合并200个csv文件 https://stackoverflow.com/questions/2512386/how-to-merge-200-csv-files-in-python。我只是不确定如何迭代具有不同名称的文件,并将这些名称添加到 csv 中。

Thanks!


要迭代文件名,您可以使用与回答类似的方法here https://stackoverflow.com/a/3964691/2327328,使用全局:

import glob
import os
os.chdir("/mydir")
for files in glob.glob("*.csv"):
    print files

然后,要将成员名称添加到标题中,您可以逐行打印所有 csv 文件。如果该行是标题,则在标题所在的同一行打印成员名称。 (这不是真正的代码,但你可以明白这一点)

for files in glob.glob("*.csv"):
    for lines in files:
         if line == header:
              print member,line
         else:
              print line

拆分 CSV 文件并仅使用成员名称(稍作修改,以便没有连字符)

'Votes-[member name]-(2010-2014)-[download-time].csv'.split('-')[1]

bash 解决方案更新:您可以保存此文本并从终端运行它(请参阅指示 https://stackoverflow.com/a/733901/2327328这里适用于 Mac)

生成 CSV 文件(非必需)

cat <<"EOF" > 1.csv
1,2,3
4,5,6
EOF

cat <<"EOF" > 2.csv
a,b,c
d,e,f
EOF

解析 CSV 文件- 此脚本获取所有 CSV 文件并将其文件名写入第一列。它还将它们放入一个文件中(请注意,我在 debian linux 上测试,而不是在 Mac 上测试)。

rm -f all.csv
for fyle in *.csv ; do 
    echo | awk -v f=$fyle '{ print f","$0 }' $fyle >> all.csv
done
exit 0

第二次更新:如果要删除重复的标头,shell 中最简单的方法是使用“grep -v”,它会选择所有不匹配的行。您可以选择仅存在于标头中的通用字符串。

head -1 all.csv > nohead.csv # add one header line
grep -v "header string" all.csv >> nohead.csv # add rest of rows, with no headers
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中合并具有不同文件名的CSV文件[关闭] 的相关文章

随机推荐

  • Angular 2 底部的粘性页脚

    我正在 Angular 2 中构建一个项目 我需要一个粘性页脚 它必须始终位于页面底部 而不是固定的 例子 http codepen io chriscoyier pen uwJjr http codepen io chriscoyier
  • 将文件读入包含空行的数组

    我正在使用此代码将文件加载到 bash 中的数组中 IFS n read d r a LINES lt PAR1 但不幸的是 这段代码会跳过空行 我尝试了下一个代码 IFS n read r a LINES lt PAR1 但这个变体只加载
  • 为什么我们需要在 tomcatlogging.properties 中写入两次处理程序?

    From docs http tomcat apache org tomcat 7 0 doc logging html handlers 1catalina org apache juli FileHandler 2localhost o
  • 安全通道支持 WSL 中发生错误[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 wsl install Windows Subsystem for Linux is already installed An err
  • 过滤掉配置文件结果中的文件

    Is there any way to filter out some files from collecting CPU profiles in or just filter them out in CPU profile results
  • 如何在网卡上发送pcap文件包? [复制]

    这个问题在这里已经有答案了 我有一些网络流量捕获的 pcap 文件 并希望在 NIC 上发送其数据包 是否可以 有什么应用程序可以做到这一点吗 您应该能够使用某种重播应用程序 例如tc预播放 http tcpreplay synfin ne
  • 如何删除 input[type="date"] 的占位符文本?

    我有一个input type date 具有最小 最大范围 我想要实现的是隐藏自 dd mm yyyy 起以任何语言显示的占位符文本 到目前为止所尝试的是添加以下 CSS input type date in range webkit da
  • SQL注入保护-单引号[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 中防止 SQL 注入的最佳方法 https stackoverflow com questions 60174 best way to prevent sql injection in php
  • 来自电子邮件的 Google 帐户图片

    是否可以像 Gravatar 图像一样检索 Google 帐户个人资料图像 我认为 如果找不到头像 故障转移到 Google 图像会非常方便 如果您能够获取 Google user id 则可以检索 Google 图片 https stac
  • WebApi 异步与同步

    我是 Net WebApi 的新手 因为我知道使用异步 API 而不是同步 API 更好 但有什么区别呢 如果 API 是同步的并且已从客户端调用 并且从另一个客户端调用 正如我所检查的 不会发生中断 并且两个调用将同时进行 那么 将其设为
  • “utf-8”编解码器无法解码位置 4 中的字节 0xe9:数据意外结束

    我对这种语言很陌生 在通过 python 发送电子邮件时遇到了一些麻烦 我的代码如下所示 import smtplib server smtplib SMTP smtp gmail com 587 server starttls serve
  • 连接到远程 IPython 实例

    我想在一台机器上运行 IPython 实例 并从不同的进程连接到它 通过 LAN 以运行一些 python 命令 我知道 zmq 是可能的 http ipython org ipython doc dev development ipyth
  • 信号量简单示例[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 谁能分享使用信号量的简单示例吗 如果
  • Type 对象属性的 TypeConverter

    我需要在属性网格中正确显示对象 我的班级看起来像这样 public class PropertyItem public PropertyDescription PropertyDescription get set Description
  • 如何在打字稿中使用枚举作为索引键类型?

    考虑下面的例子 enum DialogType Options Help class Dialog test string return class Greeter openDialogs key in DialogType Dialog
  • 如何编辑 mp3 文件详细信息 (Delphi)

    我如何使用 delphi 编辑 mp3 文件详细信息 例如描述 标题 副标题 评级 艺术家 有什么组件可以做到这一点吗 谢谢 您也许不仅可以操作 ID3V1 还可以操作 ID3V2 所以 这个库可以帮助你 http www 3delite
  • JSON 对象被 Javascript 重新排序

    我有一个通过 PHP 生成的相当大的 JSON 对象 它从数据库中创建一个 PHP 对象 其键为整数 即 1 100 但这些键并不是按这个顺序排列的 它们是随机排列的 例如 55 72 5 8 14 32 64 等 然后我使用 json e
  • 如何在Java中重写数组的equals?

    我希望覆盖 int 数组的 equals 使得以下内容为真 int a 1 2 3 int b 1 2 3 System out println a equals b 有没有办法做到这一点 覆盖equals的方法int 既不可能 也没有必要
  • 在 Visual Studio 2012 中将新的异步/等待模式与 Windows 窗体设计器结合使用

    我正在尝试在 Visual Studio 2012 中使用新的 Async Await 模式实现异步调用 当我设置表单 使用表单设计器 然后尝试使用异步方法作为事件处理程序时 编译器会抱怨函数不返回 void 该方法应该返回一个任务 这就是
  • 在Python中合并具有不同文件名的CSV文件[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我对Python真的很陌生 所以这个问题可能有点基础 我有 44 个 csv 文件 它们具有相同的标题和不同的文件名 我想将它们全部合并到