4

2 つの Excel ファイルがあります。2 つのファイルには、約 200,000 行もあります。(例では 6 行だけ示します。)

ファイル1.xlsx

  M1          M2          M3        M4
97.1859   -59.1873     0.000912    4.55
63.116    -75.958      0.003797    20.85
112.09    -22.9276     0.005008    2.26
320.7931  -63.4153     0.008382    7.45
337.8978  -72.8617     0.009965    3.88
99.2183   -56.5418     0.018141    18.17

file2.xlsx

 N1        N2      N3     N4       N5          N6
0.057      4       Im    6.61    0.005008    38.85929
0.065      36      Im    9.27    0.003797   -19.4988
0.062      68      Im    8.06    0.008382   -51.8935
0.066      46      Im    8.55    0.009965   -40.5912
                   Im    9.1     0.000912     1.089013
0.075      32      Im    12.31   0.018141     3.946489

M3 (ファイル 1 内) と N5 (ファイル 2 内) の列は同じです。

M3-N5 コラムによると、これら 2 つのファイルを一致させて、Python で 3 番目のファイル (出力ファイル) を作成したいと考えています。

出力.xlsx

   M1        M2          M3-N5       M4    N1     N2   N3    N4          N5
97.1859   -59.1873     0.000912    4.55                Im    9.1       1.089013
63.116    -75.958      0.003797    20.85  0.065   36   Im    9.27    -19.4988
112.09    -22.9276     0.005008    2.26   0.057    4   Im    6.61     38.85929
320.7931  -63.4153     0.008382    7.45   0.062   68   Im    8.06    -51.8935
337.8978  -72.8617     0.009965    3.88   0.066   46   Im    8.55    -40.5912
99.2183   -56.5418     0.018141    18.17  0.075   32   Im    12.31     3.946489

TOPCATというプログラムでやったのですが、比較のためにPythonでやりたいです。しかし、新しい Python を使い始めたので、詳細なコードを書くことができません。

これどうやってするの?どのコードを通過できますか?

どんな助けや提案も大歓迎です。

ありがとう。

4

3 に答える 3

3

パンダを使用。

ファイルの読み取り:

dfi = pandas.read_excel('myexcel_i')

共通列 (結合参照として使用される列) をデータフレーム インデックスにします。

dfi = dfi.set_index(my_column)

2つのエクセルに参加する

df = pandas.concat([df1, df2], axis=1)

新しいファイルに保存:

df.to_excel('myfile.xlsx')
于 2013-11-02T13:47:33.893 に答える
1

Pandasを使用すると、次のようにこのタスクを実行できます。

import pandas as pd
df1 = pd.read_excel('file1.xlsx', 'Sheet1')
df1.sort(columns='M3')

df2 = pd.read_excel('file2.xlsx', 'Sheet1')
df2.sort(columns='N5')

df3 = pd.concat((df1, df2), axis=1)

df3 = df3.sort(axis=1)

df3.to_excel('output.xlsx')

set_index注: @joaquinの回答で説明されているように使用する場合、上記の並べ替え操作は必要ありません...

于 2013-11-02T13:51:50.920 に答える