
[英]Python read in multiple .txt files and row bind using pandas
我来自R(和SAS),在读取大量.txt文件(都存储在同一目录中)并在熊猫中创建一个大数据框时遇到问题。 到目前为止,我已经尝试过合并代码-所有这些都不幸失败了。 我认为这是一个简单的任务,但缺乏python的经验... 如果有帮助,我将使用以下数据创建一个大型数据框: http :/ ...
[英]Import multiple sas files in Python and then row bind
提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文。
我有超过 20 个 SAS (sas7bdat) 文件,所有文件都具有我想在 Python 中读取的相同列。我需要一个迭代过程来读取所有文件并 rbind 到一个大 df 中。 到目前为止,这是我所拥有的,但它会抛出一个错误,指出没有要连接的对象。
import pyreadstat
import glob
import os
path = r'C:\\Users\myfolder' # or unix / linux / mac path
all_files = glob.glob(os.path.join(path , "/*.sas7bdat"))
li = []
for filename in all_files:
reader = pyreadstat.read_file_in_chunks(pyreadstat.read_sas7bdat, filename, chunksize= 10000, usecols=cols)
for df, meta in reader:
li.append(df)
frame = pd.concat(li, axis=0)
我发现这个读入 csv 文件的答案很有帮助: Import multiple CSV files into pandas and concatenate into one DataFrame
所以如果一个人有太大的 sas 数据文件并计划将 append 全部放入一个 df 那么:
#chunksize command avoids the RAM from crashing...
for filename in all_files:
reader = pyreadstat.read_file_in_chunks(pyreadstat.read_sas7bdat, filename, chunksize= 10000, usecols=cols)
for df, meta in reader:
li.append(df)
frame = pd.concat(li, axis=0, ignore_index=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.