我有一个982个数据帧的列表,并希望通过它循环,以便我可以通过索引合并它们。我打算将位置[0]中的数据帧与位置[1]中的数据帧合并,然后将位置[2]中的数据帧与数据帧[0]与数据帧[1]之间的合并结果合并,依此类推
我试过这个,但似乎不起作用:
aux4 = '/Users/lucasiancsamuels/Desktop/Res. Regional - COVID 19/Bases/Auxílio Emergencial/202004_AuxilioEmergencial.csv'
auxabr = pd.read_csv(aux4,chunksize=50000,encoding='Latin-1',sep=';')
chunk_list = []
#dividing the dataframe in chunks
for chunks in auxabr:
chunks.drop(chunks.columns[[4,5,6,7,8,9,10,11,12]],inplace=True,axis=1)
chunks.dropna(axis=0,inplace=True)
agrupado1 = chunks.groupby('CÓDIGO MUNICÍPIO IBGE')
auxemer1 = agrupado1['VALOR BENEFÍCIO']
valor1 = auxemer1.agg(np.sum)
chunks = (chunks.drop_duplicates('CÓDIGO MUNICÍPIO IBGE'))
chunks.index = chunks['CÓDIGO MUNICÍPIO IBGE']
chunks.index.astype(dtype=np.int64)
chunks.sort_index(inplace=True)
filtered_chunk = pd.concat([chunks,valor1],axis=1)
chunk_list.append(filtered_chunk)
#merge the dataframes by index - didn't work
for i in range(0,981):
filtered_data = pd.merge(left=chunk_list[i],right=chunk_list[i+1],on=chunk_list[i].index)
并返回此错误:
KeyError: Float64Index([1200013.0, 1200054.0, 1200104.0, 1200138.0, 1200179.0,
1200203.0],
dtype='float64', name='CÓDIGO MUNICÍPIO IBGE')
卢卡斯,我开始写另一条评论,但时间太长了
首先,
na_values
没有做你认为它做的事情。当您有其他要视为NaN的值时,将使用此选项。例如,我可以在我的电子表格中有-99
个值,表示没有值,当我加载csv时,我会指示pandas使用na_values=-99
将这些值视为NA您需要做的是:首先按照常规加载csv,然后使用
fillna
删除NaN值,最后将整个列强制转换为整数:之后一切都会好起来的
相关问题 更多 >
编程相关推荐