当前位置: 首页 > 知识库问答 >
问题:

压缩单列多个不同形状的文件

贺君浩
2023-03-14

我有200个不同的文件,我需要把一列接一列的内容压缩成一个文件。这200个文件位于一个目录中,因此我尝试了以下脚本。

path = '/data' 
files = os.listdir(path)

files_txt  = [os.path.join(path,i) for i in files if i.endswith('tsv')]

## Change it into dataframe
dfs = [pd.DataFrame.from_csv(x, sep='\t')[[6]] for x in files_txt]
##Concatenate it
merged = pd.concat(dfs, axis=1)

但它抛出以下值错误,因为每个文件的形状都不同。我想有一些解决办法。非常感谢。

这是一个错误,

ValueError: Shape of passed values is (149, 13864), indices imply (149, 13860)

共有1个答案

戴高远
2023-03-14

索引包含重复的代码,那么conat将失败,因为它将基于索引来加入数据帧

dfs = [pd.DataFrame.from_csv(x, sep='\t')[[6]].reset_index(drop=True) for x in files_txt]
##Concatenate it
merged = pd.concat(dfs, axis=1)

使用支票

for x in dfs : 
    print(x.index.is_unique)

为了重现错误

df1=pd.DataFrame({'A':[1,2]})
df2=pd.DataFrame({'A':[1,2]},index=[1,1])
pd.concat([df1,df2],axis=1)

ValueError:传递值的形状为(2,5),索引暗示为(2,3)

 类似资料:
  • 问题内容: 我已经找到了许多有关如何从.zip中提取 所有 文件的示例,但是我不知道如何在不迭代.zip文件中的所有文件的情况下提取单个文件。 Go中是否可以从.zip存档中提取单个文件,而无需遍历.zip文件中的所有文件? 例如,如果一个zip文件包含: 我将只提取 吗? 问题答案: 为您提供的归档文件的内容,这些文件作为 片 (的)。没有通过名称获取文件的帮助程序方法,您必须使用循环来遍历文件

  • 我有下面的功能 IntelliJ在返回声明中抱怨说: 如何将类型转换为所需的返回类型?

  • 我正在使用Julia的ZipFile包来提取和处理csv文件。没问题,但是当我遇到zip文件中的zip文件时,我也想处理它,但是遇到了一个错误。 Julia ZipFile文档如下:https://zipfilejl.readthedocs.io/en/latest/ 对如何做到这一点有什么想法吗?

  • 我想创建一个多边形从形状点。

  • 我在on文件夹的几个zip文件中有几个csv文件,例如: null zip中的一个csv是这样工作的: 你知道如何优化这个循环吗?

  • 常用压缩包—解压—令整理 Linux 后缀为 .war 格式的文件(一般用在部署 Tomcat 项目的时候) 命令:unzip -oq XXXXXX.war -d ROOT 如果没有 ROOT 目录会自动创建 ROOT 目录。 Linux 后缀为 .tar.gz 格式的文件-解压 命令:tar zxvf XXXXXX.tar.gz Linux 后缀为 .bz2 格式的文件-解压 命令:bzip2