私の問題については多くの投稿がありましたが、それらの問題は解決していないようです。私は、列に関して同じ2つのDFを持っています(dfTemp.rows> dfLags.rows)。パンダ同じラベルのDataFrameオブジェクトのみを比較できます
print(dfLags.columns.values)
print(dfLags.dtypes)
print(dfLags)
は... ...一方
['Site ID' 'Port' 'outSpeed']
Site ID object
Port object
outSpeed float64
dtype: object
Site ID Port outSpeed
0 10.2.20.5 Lag 112 10000000000
1 10.2.20.5 Lag 122 10000000000
2 10.2.21.3 Lag 1 2000000000
3 10.2.21.3 Lag 3 20000000000
4 10.2.21.3 Lag 10 20000000000
5 10.2.22.123 Lag 2 3000000000
6 10.2.22.123 Lag 3 2000000000
7 10.2.22.123 Lag 10 6000000000
8 10.2.22.21 Lag 1 3000000000
9 10.2.22.21 Lag 3 2000000000
10 10.2.22.21 Lag 10 6000000000
11 10.2.46.52 Lag 3 20000000000
12 10.2.46.52 Lag 10 20000000000
を生成します。
print(dfTemp.columns.values)
print(dfTemp.dtypes)
print(dfTemp)
...生成:
['Site ID' 'Port' 'outSpeed']
Site ID object
Port object
outSpeed float64
dtype: object
Site ID Port outSpeed
0 10.2.22.74 1/5/7 1000000000
1 10.2.22.74 1/1/7 1000000000
2 10.2.22.74 1/3/7 1000000000
3 10.2.22.74 1/4/7 1000000000
4 10.2.20.5 3/1/3 1000000000
5 10.2.46.52 3/2/1 1000000000
6 10.2.46.52 3/2/10 1000000000
7 10.2.46.52 Lag 10 NaN
8 10.2.21.3 1/1/1 1000000000
9 10.2.21.3 3/2/5 1000000000
10 10.2.21.3 Lag 10 NaN
.. ... ... ...
11 10.2.21.251 1/1/2 1000000000
181 10.2.22.123 1/2/21 1000000000
182 10.2.22.123 2/1/13 1000000000
183 10.2.22.123 2/1/14 1000000000
184 10.2.22.123 2/1/17 1000000000
[185 rows x 3 columns]
私は比較しようとするときはいつでもエラーValueError: Can only compare identically-labeled DataFrame objects
が表示されます。私は、次のやろうとしている:
dfTemp.loc[ (dfTemp[[SITE_IP,PORT_NAME]]==dfLags[[SITE_IP,PORT_NAME]]) & (dfTemp["outSpeed"].empty), "outSpeed"] = \
dfLags.loc[ (dfTemp[[SITE_IP,PORT_NAME]]==dfLags[[SITE_IP,PORT_NAME]]) & (dfTemp["outSpeed"].empty), "outSpeed"]
なぜ私はこのようなエラーを取得しています上の任意のヒント?
ありがとうございます!
まあ、はい。比較のためには、両方の次元が同一でなければなりません。そうでなければ、パンダが他のものより多くの行を持っているときに、どのように比較することが期待できますか?余分な行はどのように比較されますか? –
特に、インデックスは両方の軸に沿って整列する必要があります。 –
エラーごとに、パンダはラベルについて不平を言いますが、行の量の不一致ではありません。ややこしい。同じサイズのDFだけを比較できることを意味しますか?それは意味をなさない。 ExcelのVLOOKUPのように行に沿って一致するものがある場合は、列名に基づいて比較し、情報を抽出したいと考えています。一方、私はあなたに「特にインデックスは両方の軸に沿って整列しなければならない」とは言いません。どういう意味ですか? –