我是编程新手,我目前正在开始使用pandas,我希望能找到一种方法来组装8个不同的数据帧,这些数据帧具有不同的相等的列,以便当我将它们连接在一个变量中时,它是有意义的。
这是我目前得到的:
def read_the_files():
dfs = []
for i in range(1,9):
archivos_csv = archivos_csv = pd.read_csv("DDFF_"+ str(i) +".csv")
dfs.append(archivos_csv)
df_unido = pd.concat(dfs)
return df_unido
result = read_the_files()
为了让自己更清楚,这是前两个数据帧的列:
archivo1=pd.read_csv("BBDD_1.csv")
a = list(archivo1.columns.values.tolist())
archivo2=pd.read_csv("BBDD_2.csv")
b = list(archivo2.columns.values.tolist())
输出:
['Unnamed: 0', 'index', 'propertyCode', 'numPhotos', 'floor', 'price', 'propertyType', 'operation', 'size', 'exterior', 'rooms', 'bathrooms', 'address', 'municipality', 'district', 'neighborhood', 'url', 'distance', 'description', 'hasVideo', 'status', 'hasLift', 'priceByArea', 'hasPlan', 'parkingSpace']
['Unnamed: 0.1', 'Unnamed: 0', 'index', 'propertyCode', 'thumbnail', 'externalReference', 'numPhotos', 'floor', 'price', 'propertyType', 'operation', 'size', 'exterior', 'rooms', 'bathrooms', 'address', 'province', 'municipality', 'district', 'country', 'neighborhood', 'latitude', 'longitude', 'showAddress', 'url', 'distance', 'description', 'hasVideo', 'status', 'newDevelopment', 'hasLift', 'priceByArea', 'detailedType', 'suggestedTexts', 'hasPlan', 'has3DTour', 'has360', 'hasStaging', 'superTopHighlight', 'topNewDevelopment', 'labels', 'parkingSpace', 'newDevelopmentFinished']
正如你所看到的,列的数量不同,顺序也不同,而且有一些列是两个数据框架都有的。
谢谢你的帮助:)
我尝试连接不同的csv文件,但他们返回错误,因为列没有排序
如果问题是列的顺序不相同,我认为它应该是好的,如果你尝试以下代码:
df = {}
for i in range(1,9):
df[i] = pd.read_csv('DDFF_'+str(i)+'.csv')
df_final = pd.concat(df, ignore_index=True)
我对两个数据帧进行了测试,输出:
df[1]:
longitude total_rooms housing_median_age latitude
0 -122.05 3885.0 27.0 37.37
1 -118.30 1510.0 43.0 34.26
2 -117.81 3589.0 27.0 33.78
... ... ... ... ...
2997 -119.70 956.0 10.0 36.30
2998 -117.12 96.0 40.0 34.10
2999 -119.63 1765.0 42.0 34.42
[3000 rows x 4 columns]
-----------------------------------------------------------
df[2]:
total_rooms longitude latitude housing_median_age
0 5612.0 -114.31 34.19 15.0
1 7650.0 -114.47 34.40 19.0
2 720.0 -114.56 33.69 17.0
... ... ... ... ...
16997 2677.0 -124.30 41.84 17.0
16998 2672.0 -124.30 41.80 19.0
16999 1820.0 -124.35 40.54 52.0
[17000 rows x 4 columns]
-----------------------------------------------------------
df_final is:
longitude total_rooms housing_median_age latitude
0 -122.05 3885.0 27.0 37.37
1 -118.30 1510.0 43.0 34.26
2 -117.81 3589.0 27.0 33.78
... ... ... ... ...
19997 -124.30 2677.0 17.0 41.84
19998 -124.30 2672.0 19.0 41.80
19999 -124.35 1820.0 52.0 40.54
[20000 rows x 4 columns]
你的代码(有一些改变)是好的:
def read_the_files():
dfs = []
for i in range(1,9):
archivos_csv = pd.read_csv("DDFF_"+ str(i) +".csv")
dfs.append(archivos_csv)
df_unido = pd.concat(dfs,ignore_index = True)
return df_unido
result = read_the_files()