Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用python和pandas将多个列组合成一个长列

如何使用python和pandas将多个列组合成一个长列
EN

Stack Overflow用户
提问于 2020-03-23 23:52:16
回答 1查看 181关注 0票数 0

大家好,我目前正在处理的数据如下:Example of original data file

总共有51个文件,每个文件有超过800个振荡列,例如(Time,ID,x1,x2,ID,x1,x2,...),这些列都是未标记的。在文件中,每一行都有不同数量的列,如下所示:Shape of one data file

我需要将所有51个文件合并到一个文件中,然后像这样垂直堆叠列:Example of output file

因此,对于每个时间戳,每个学生都有一个特定的行,其中包含他们的位置x,y。

有人能帮我一下吗,谢谢

我使用以下代码合并了具有不同列的CSV文件,但输出文件的大小是原始文件的两倍(例如,100MB对50MB)。我的方法是使用最大列数合并文件,并展开到每一行。然而,这种方法在数据中创建了许多缺失值,从而增加了输出文件的大小。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os
import glob
import pandas as pd

def concatenate(indir="C:\Test Files",outfile="F:\Research Assitant\PROJECT_Position Data\Test File\Concatenate.csv"):
    os.chdir(indir)
    fileList=glob.glob("*.csv")
    dfList=[]
    for filename in fileList:
        ### Loop over each line
        with open(filename, 'r') as f:
            ### Skip first four lines
            for _ in range(4):
                next(f)
            ### Get the numbers of columns in each line
            col_count = [ len(l.split(",")) for l in f.readlines() ]

        ### Read the current csv file
        df = pd.read_csv(filename, header=None, delimiter=",", names=range(max(col_count)), 
                         skiprows=4, keep_default_na=False, na_values=[""])
        ### Append to the list
        dfList.append(df)

    concatDf=pd.concat(dfList,axis=0)
    concatDf.to_csv(outfile,index=None)

有没有办法减小输出文件的大小?或者是在python中处理异构CSV文件的更有效的方法?

合并所有CSV文件后,如何垂直堆叠这些列?

EN

回答 1

Stack Overflow用户

发布于 2020-03-24 02:49:32

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    with open(os.path.join(working_folder, file_name)) as f:
    student_data = []
    for line in f:
        row = line.strip().split(",")
        number_of_results = round(len(row[1:]) / 4) # if we do not count time column, data repeats every 4 times
        time_column = row[0]
        results = row[1:]
        for i in range(number_of_results):
            data = [time_column] + results[i*4: (i+1)*4]
            student_data.append(data)
df = pd.DataFrame(student_data, columns=["Time", "ID", "Name", "x1", "x2"])
df
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60823154

复制
相关文章
iterm2(zsh)粘贴慢解决办法
# .zshrc pasteinit() { OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]} zle -N self-insert
ACK
2022/05/10
7380
IE之页面加载慢.
场景 场景是大屏页面一张深色背景, 里面一些文本元素以及图表展示. 结果在IE下发现加载异常缓慢, 还有部分人员反馈页面卡死. 后台读写优化 默认处理图片逻辑是, ImageIO读取原图, 转成byt
用户1216491
2018/01/24
2.4K0
idea使用debug模式启动非常慢
后来发现,之前在调试代码时不注意给属性加了断点,去掉idea的Breakpoints里的java field watchpoints就不卡了,如下:
凯哥Java
2022/12/16
2.2K0
idea使用debug模式启动非常慢
ntpdate同步时间慢
随着时间的推移,计算机的时钟会倾向于漂移. 网络时间协议 (NTP) 是一种确保您的时钟保持准确的方法。当硬件设备不带电池和无RTC的时候,基本靠网络时间协议来进行同步时间
程序手艺人
2019/02/21
3.6K0
Xshell/Xftp连接Linux速度非常慢(已解决)
1、打开sshd服务的配置文件/etc/ssh/sshd_config,把UseDNS yes改为UseDNS no
Arebirth
2020/06/19
5.4K0
Android Studio导入项目非常慢的解决办法
问题     Android Studio目前已经更新到2.0 Preview 6了,作为Google大力推崇的开发工具,相对于Eclipse ADT有着不可比拟的优势。然而在实际使用时,依然有不少不爽的地方。Android Studio原生支持使用Gradle来构建项目本是个不错的想法,使用动态语言Groovy定义项目构建过程,避免了build.xml文件的繁琐定义。但是Gradle的二进制包体积较大,而且用户可能按照了不同的Gradle版本,构建时可能会出现各种问题。因此又提出了Gradle Wrapp
24K纯开源
2018/01/18
1.4K0
Android Studio导入项目非常慢的解决办法
WordPress后台加载慢的快速优化方法
WordPress后台加载慢,一般与WordPress程序加载海外资源有关,这里推荐安装一个简单易用的插件来进行优化。
超级小可爱
2023/02/20
8970
Ghost 解决 jsdelivr 资源加载慢的问题
用了很久的自建 Ghost 博客系统不知道从哪个版本开始,页面加载速度忽然变慢了很多。看了下加载的资源,发现多了很多走 jsdelivr cdn 的资源,加载速度竟然长达半分钟。。。
mythsman
2023/03/08
2.2K0
Ghost 解决 jsdelivr 资源加载慢的问题
WordPress后台加载慢的快速优化方法
WordPress后台加载慢,一般与WordPress程序加载海外资源有关,这里推荐安装一个简单易用的插件来进行优化。
用户7491502
2021/06/24
3.7K0
WordPress后台加载慢的快速优化方法
大表分页查询非常慢,怎么办?
在实际的软件系统开发过程中,随着使用的用户群体越来越多,表数据也会随着时间的推移,单表的数据量会越来越大。
Java极客技术
2022/12/04
1.5K0
大表分页查询非常慢,怎么办?
为什么我的Redis这么“慢”?
Redis 作为内存数据库,拥有非常高的性能,单个实例的 QPS 能够达到 10W 左右。
架构师修行之路
2020/08/20
3.7K0
【Android】再来一篇Fragment的懒加载(只加载一次哦)
2017-7-14更新: 目前有人使用后出现了诸如首次打开显示空白界面,但点击有反应;或来回切换又变空白界面的问题。这些问题我暂时还不知道该怎么解决,后期有时间时会具体去分析下问题该怎么解决。所以你如果要使用该代码,希望考虑一下,我自己的小应用目前是没碰到这些问题。
请叫我大苏
2018/05/17
1.6K0
我先入坑啦,等你哦!
1.完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1);
夕梦
2021/06/07
3640
我先入坑啦,等你哦!
为啥我的Python这么慢 (一)
在Python系列教程中,我们提到一个概念字符串是不可修改的。这一点可以通过id函数来判断确实是对的。但是这个概念会对我们写作程序有什么影响一直没有特别深的理解。 直到有一次,实验室一个朋友要读基因组数据,结果发现3 G的基因组读一晚上都没读完,就很诧异,看了下代码,这么写的。 基因组序列是GRCh38.fa,FASTA格式,序列行每行70个字符,共44,284,892行 (记住行数有多大),示例如下。 >chr1 NNNNN...(60个N)...NNNNN ACGTA...(60个Nt)...ACGTA
生信宝典
2018/02/05
6490
css加载慢导致加载瞬间白屏(dom比css加载快导致)
2,css样式压缩下,用sass编译一下,放在head顶部,head再用incloud包起来,放在文件夹;
kirin
2020/11/30
2.2K0
还原我的图床数据库,哦耶~
之前的服务器到期后,用了两年的服务器,里面的东西还是蛮多的。我的网站博客,图床,和一些搭建的其他网站。最后我虽然给所有的东西都迁移了,唯独这个图床没有成功迁移,打开网站地址,报错。
废江_小江
2022/09/05
3170
使用 JS 监听加载,避免谷歌广告拖慢网页的加载速度
如果我的网页上有多个广告单元,把该段引入 JS 的代码 放到 head 里 既可以达到一次载入 JS 所有 ins 都可以接到广告,或者还可以使用 JS 监听的方式加载。
Yangsh888
2022/03/28
2.1K0
100%解决github加载慢、github加速
.NET Core Community是一个基于并围绕着 .NET 技术栈展开组织和活动的非官方、非盈利性的民间开源社区,提供了很多优秀的 .NET 开源项目。
老九
2021/08/13
3.2K0
启用Windows防火墙后,FTP传输非常慢
我们有一个计划任务,该任务使用Windows命令行FTP程序在两个Windows服务器之间传输大文件(〜130 MB)。速度很慢(大约需要30分钟),有时会在传输完成之前终止。服务器是2003年(发送)和2008年(接收)。
镭速
2023/06/01
7790
点击加载更多

相似问题

展示主题哦-我-zsh

45

bash,zsh :声明[*] (哦,我的)

13

写自己的哦-我-zsh插件

13

哦,我的ZSH & Vim插入光标

12

哦-我的-zsh历史日期格式

124
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文