Pandas 如何将文件夹中的每个文件读取到以文件名和覆盖列名命名的数据框中?

Pandas 如何将文件夹中的每个文件读取到以文件名和覆盖列名命名的数据框中?,pandas,dataframe,text-files,python-3.5,Pandas,Dataframe,Text Files,Python 3.5,我正在从事一个项目,从()下载公共数据,尤其是下载zip文件“real_acct_Owner”和“real_building_land” 每个zip文件都包含休斯顿地区建造的房屋的数据,如地址、固定装置、平方英尺等 我的目标是组织数据,以便zip文件夹中的所有文件都是可由列“account”索引的数据帧 我遇到了一个问题,即如何创建一个函数或for循环,根据文件名将数据读写到数据框中,以及如何覆盖列名,因为zip文件夹中的数据不包含列名。列名可以在网站左上角标有“access.zip”的acce

我正在从事一个项目,从()下载公共数据,尤其是下载zip文件“real_acct_Owner”和“real_building_land”

每个zip文件都包含休斯顿地区建造的房屋的数据,如地址、固定装置、平方英尺等

我的目标是组织数据,以便zip文件夹中的所有文件都是可由列“account”索引的数据帧

我遇到了一个问题,即如何创建一个函数或for循环,根据文件名将数据读写到数据框中,以及如何覆盖列名,因为zip文件夹中的数据不包含列名。列名可以在网站左上角标有“access.zip”的access zip文件夹中找到。

到目前为止,在我的代码中,我调用了上述两个文件夹中的每个文件,并指定了每个列名。我希望这是一个迭代过程,因为我将不得不为其他县这样做,并希望有一种方法来创建一个文件夹中的文件循环

到目前为止,我的代码没有循环:

import pandas as pd

fixtures = pd.read_csv('/Users/Desktop/Real_building_land/fixtures.txt',header = None, 
                 encoding= 'cp037', error_bad_lines=False, sep='\t')


real_acct =pd.read_csv('/Users/Desktop/Real_acct_owner/real_acct.txt', header = None,
                 encoding = 'cp037', error_bad_lines=False, sep='\t')

exterior = pd.read_csv('/Users/Desktop/Real_building_land/exterior.txt', header = None,
                 encoding = 'cp037', error_bad_lines=False, sep='\t')

fixtures.columns = ('ACCOUNT','BUILDING_NUMBER','FIXTURE_TYPE','FIXTURE_DESCRIPTION','UNITS')

real_acct.columns = ("ACCOUNT","TAX_YEAR","MAILTO","MAIL_ADDR_1","MAIL_ADDR_2","MAIL_CITY","MAIL_STATE",
"MAIL_ZIP","MAIL_COUNTRY","UNDELIVERABLE","STR_PFX" ,"STR_NUM", "STR_NUM_SFX","STR_NAME",
"STR_SFX","STR_SFX_DIR","STR_UNIT","SITE_ADDR_1","SITE_ADDR_2","SITE_ADDR_3","STATE_CLASS",
"SCHOOL_DIST","MAP_FACET","KEY_MAP","NEIGHBORHOOD_CODE","NEIGHBORHOOD_GROUP","MARKET_AREA_1",   
"MARKET_AREA_1_DSCR","MARKET_AREA_2","MARKET_AREA_2_DSCR","ECON_AREA","ECON_BLD_CLASS",
"CENTER_CODE","YR_IMPR","YR_ANNEXED","SPLT_DT","DSC_CD","NXT_BUILDING","TOTAL_BUILDING_AREA",   
"TOTAL_LAND_AREA","ACREAGE","CAP_ACCOUNT","SHARED_CAD_CODE","LAND_VALUE","IMPROVEMENT_VALUE",   
"EXTRA_FEATURES_VALUE"  ,"AG_VALUE","ASSESSED_VALUE","TOTAL_APPRAISED_VALUE","TOTAL_MARKET_VALUE",
"PRIOR_LND_VALUE","PRIOR_IMPR_VALUE","PRIOR_X_FEATURES_VALUE","PRIOR_AG_VALUE",
"PRIOR_TOTAL_APPRAISED_VALUE","PRIOR_TOTAL_MARKET_VALUE","NEW_CONSTRUCTION_VALUE",
"TOTAL_RCN_VALUE","VALUE_STATUS","NOTICED","NOTICE_DATE","PROTESTED","CERTIFIED_DATE",
"LAST_INSPECTED_DATE","LAST_INSPECTED_BY","NEW_OWNER_DATE","LEGAL_DSCR_1","LEGAL_DSCR_2",
"LEGAL_DSCR_3","LEGAL_DSCR_4","JURS")

exterior.columns = ("ACCOUNT","BUILDING_NUMBER","EXTERIOR_TYPE","EXTERIOR_DESCRIPTION","AREA")


df = fixtures.merge(real_acct,on='ACCOUNT').merge(exterior,on='ACCOUNT')
#df = df.loc[df['ACCOUNT'] == 10020000015]

print(df.shape)
使用循环进行少量试验的代码无效

import pandas as pd
import glob
import os


dfs = {os.path.basename(f): pd.read_csv(f, sep='\t', header=None,encoding='cp037',
       error_bad_lines=False) for f in glob.glob('/Users/Desktop/Real_building_land/*.txt')}

print(dfs)

path =r'path' # use your path
allFiles = glob.glob(path + "/*.csv")
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
    df = pd.read_csv(file_,index_col=None, header=0)
    list_.append(df)
frame = pd.concat(list_)
先谢谢你