大量csvデータマージ


単一行単列の追加は、appendとassignでよい(appendは一つのテーブルを別のテーブルの後ろに追加することもできる)大規模なcsvファイルをマージし、フィールドマッチングを行うには、次の方法が必要である.combine(1)列の平均サイズに基づいて塗りつぶす
df1 = pd.DataFrame({'A': [1, 20], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [8, 7], 'B': [6, 5]})
df1.combine(df2,lambda x,y:x if x.mean()>y.mean() else y)

出力:A B 0 1 6 1 20 5(2)インデックス整列特性(デフォルトでは、後のテーブルにない行列がNaNに設定されます)
df2 = pd.DataFrame({'B': [8, 7], 'C': [2, 3]},index=[1,2])
df1.combine(df2,lambda x,y:x if x.mean()>y.mean() else y)

(3)df 1が条件を満たす値が上書きされないようにする(4)df 2に新たに一致する要素位置に-1(5)combine_を充填するfirstはdf 2でdf 1の欠落値2を埋める.updateメソッドのデフォルトの左接続では、2番目のボックスの空の値は機能しません.
df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [400, 500, 600]})
df2 = pd.DataFrame({'B': [4, 5, 6],
                    'C': [7, 8, 9]})
df1.update(df2)

二、concat方法
2つの次元でつなぎ合わせることができ、デフォルトの縦方向のつなぎ合わせ(axis=0、縦方向の2番目のテーブルを1番目の後ろに付ける)、外接続(並列セットを取る)、フィールド名の横方向のつなぎ合わせパラメータaxis=1内の接続パラメータ、join="inner"が自動的にアライメントされます.パラメータsort設定ソート、デフォルトはFalse、sort=Trueパラメータverify_integrity=Trueカラムが一意かどうかをチェックする.concat([df 3,df 1],join=‘inner’)パラメータkeyは異なるcsvファイルにラベルを付け、インデックスを容易にする
pd.concat([df1,df2], keys=['x', 'y'])
pd.concat([df1,df2], keys=['x', 'y']).index
print(pd.concat([df1,df2], keys=['x', 'y']))
  A   B

x 0 A0 B0 1 A1 B1 y 2 B2 A2 3 B3 A3
三、mergeとjoin
1.mergeは2つのcsvファイルを横方向にマージし、デフォルトのinner接続、オプションleft、outer、right接続パラメータon、テーブルの名前フィールドに基づいて接続するなど、keyとして列を作成します.on=「name」
pd.merge(left, right, on='name')

複数のキーで接続するon=[‘name’,‘grade’]csvファイルマッチングを行う場合、私はバスデータ処理をしています.バス停名をバス停番号のファイルに追加する必要があります.innerで、keyはバス路線番号とバス停番号です.join横接続、デフォルト左接続はmany_to_oneモードでのマージは、joinの方が便利になることが多い