gpt4 book ai didi

python - 删除大文件中的空列

转载 作者:IT王子 更新时间:2023-10-29 00:36:13 24 4
gpt4 key购买 nike

删除文件中空列的最快方法是什么。下面给出了一个示例文件。

我使用了 python 'pandas' 包,但是加载我的 2 GB 文件花费了太多时间(大约 10 分钟后我没有得到答案,所以退出,因为我必须对许多文件执行此操作)。

df = read_table(inFileName, sep="\t")
df = df.dropna(axis=1,how='all') #remove columns

aaa bbb ccc ddd eee
1 a c
2 s d
3 d
f d
4 g d
5 h e

我事先不知道哪些字段是空的。我正在使用 0.9.1 版本的“ Pandas ”

pkg_resources.get_distribution("pandas").version '0.9.1'

最佳答案

好吧,我猜你发现你根本不想删除那些列。但这里是您如何在 gawk 中完成它。

awk -F "\t" 'ARGIND==1{
for(i=1;i<=NF;i++)n[i]+=$i!=""
}ARGIND==2{
if(!ok){for(i in n)if(!n[i])delete n[i];asorti(n);ok=1}
for(i in n)printf("%s\t",$n[i]);printf("\n")
}' input.txt{,} > output.txt

这是通过两次遍历文件来实现的。第一个计算每列中的条目数,而第二个只打印那些至少有一个命中的列。对于您的示例文件(假设以制表符分隔的列,并删除 aaa bbb 等标题,我得到了结果

1   a   c   
2 s d
3 d
f d
4 g d
5 h e

但是真糟糕,2 GB 的文本文件。您没有更合适的二进制格式来存储它吗?

关于python - 删除大文件中的空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com