是否有一种方法来排序不同的数据框列,而不是由列的值?



我是编程新手,我目前正在开始使用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()

相关内容

  • 没有找到相关文章

最新更新