使用後に取得したリストに複数のデータフレームがあり、np.array_split
その一部を1つのデータフレームに連結したいと思います。この例では、bに含まれる3つのデータフレーム(リスト内の要素b [1]である2番目のデータフレームを除くすべて)を連結します。
df = pd.DataFrame({'country':['a','b','c','d'],
'gdp':[1,2,3,4],
'iso':['x','y','z','w']})
a = np.array_split(df,4)
i = 1
b = a[:i]+a[i+1:]
desired_final_df = pd.DataFrame({'country':['a','c','d'],
'gdp':[1,3,4],
'iso':['x','z','w']})
空のdfを作成してから、bの要素に対してループを介して追加を使用しようとしましたが、完全には成功しませんでした。
CV = pd.DataFrame()
CV = [CV.append[(b[i])] for i in b] #try1
CV = [CV.append(b[i]) for i in b] #try2
CV = pd.DataFrame([CV.append[(b[i])] for i in b]) #try3
for i in b:
CV.append(b) #try4
私はうまくいく解決策に到達しましたが、それは効率的ではありません:
CV = pd.DataFrame()
CV = [CV.append(b) for i in b][0]
この場合、すべての行で同じデータフレームの3倍のCVを取得し、最初の行を取得します。ただし、大きなデータセットがある実際のケースでは、同じデータセットを3倍持つと、計算にかかる時間が大幅に長くなります。
操作を繰り返さずにそれを行うにはどうすればよいですか?
複数のDFを連結し、インデックスをリセットするには、次を使用しますpandas.concat
。
pd.concat(b, ignore_index=True)
出力
country gdp iso
0 a 1 x
1 c 3 z
2 d 4 w
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加