上の条件私は、次の頭を持つ大規模なデータフレームを持っているフィルターパンダのデータフレームの特定の月の値に基づいて、別の列
import pandas as pd
f = pd.Dataframe(columns=['month', 'Family_id', 'house_value'])
ヶ月間は10900までFamily_ids、0から239まで行き、家の値が異なります。したがって、データフレームには250万本以上の回線があります。
最終的な住宅価格と各家族の初期値との間に差異があるものについてのみデータフレームをフィルタリングしたいと考えています。
いくつかのサンプルデータは、次のようになります。
f = pd.DataFrame({'month': [0, 0, 0, 0, 0, 1, 1, 239, 239], 'family_id': [0, 1, 2, 3, 4, 0, 1, 0, 1], 'house_value': [10, 10, 5, 7, 8, 10, 11, 10, 11]})
そして、そのサンプルから得られたデータフレームは、次のようになります。
g = pd.DataFrame({'month': [0, 1, 239], 'family_id': [1, 1, 1], 'house_value': [10, 11, 11]})
だから私はこのようなものになるだろうコードに考えました:
:ft = f[f.loc['month'==239, 'house_value'] > f.loc['month'==0, 'house_value']]
もこれを試してみました10
g = f[f.house_value[f.month==239] > f.house_value[f.month==0] and f.family_id[f.month==239] == f.family_id[f.month==0]]
上記のコードは、エラーKeyerror: False
とValueError
を示しています。ありがとう。
''month' == 239'文字列を比較しています。これは' False'につながり、 '.loc'の助けを借りてインデックスの' False'を検索しています。したがって、キーエラーにつながります。あなたが達成する必要があるのは正確です。あなたはデータを投稿することができます – Dark
両方のシリーズは異なる長さを持つかもしれないので、あなたはその方法を比較することはできません。したがって、入力としてサンプルデータを使用して希望の出力を投稿してください – Dark