パンダは、各行の値を指定して、異なるデータフレーム間を線形補間します

連邦準備制度

テナーによると、さまざまな国(たとえば、中国、米国、インドなど)のリンゴの価格に関するデータフレームがいくつかあります。これは次のようになります。中国を例にとると:

tenors = pd.Series(['1W', '1M', '1Y'])
apples_china = pd.Series([5.1, 6.2, 7.1])
days = pd.Series([7, 30, 365])
data = {'tenors': tenors, 
   'apples_china':  apples_china,
   'days' : days}
apples_china = pd.DataFrame(data)

次に、米国(apples_usa)、ヨーロッパ(apples_eu)などに相当するものがあります。

次に、次のような大きな「ポートフォリオ」データフレームがあります。

country = pd.Series(['china', 'usa', 'europe',' china', 'china', 'india'])
days = pd.Series([12, 45, 99, 101, 102, 300 ])
portfolio = {'country': country, 
   'days' : days}
df_portfolio = pd.DataFrame(portfolio)

列を追加したい:

df_portfolio['price']

これは、df_portfolio ['country']の値を調べ、たとえば 'china'の場合、日数(row [0]の12)を取り、apples_chinaデータフレーム内を線形補間します。したがって、行[0]では5.1から6.2の間の値、行[3]では6.2から7.1の間の値などになります。

row [1]の場合、類似のapples_usaデータフレームなどの内部を調べます。

私が試したのは:

from scipy.interpolate import interp1d
test = interp1d(apples_china['apples_china'], apples_china['days']) #arrays Y and X 
df_portfolio['price'] = np.where(df_portfolio['country']=='china', test(df_portfolio['days']), 0)

しかしValueError、x範囲でa返しました

jpp

numpy.where治療には、いくつかの選択肢があるソリューションが適しています。

ただし、多くの国が関与するスケーラブルなソリューションの場合、辞書の方が便利な場合があります。以下に、必要な手順を示します。

ステップ1

国を国固有のデータにマッピングする辞書を作成します。

country_map = {'china': apples_china.sort_values('days')}

手順2で必要に応じて機能するように、国のデータフレームが並べ替えられdaysていることを確認する必要があることに注意してくださいnp.interp

ステップ2

ポートフォリオデータフレームからデータの行を取得するカスタム関数と、ステップ1のマッピングディクショナリを定義し、を使用np.interpしてマッピングを実行します。try/except句を使用して、国が辞書に存在しないインスタンスをキャッチできます。

def interpolator(row, mapper):
    days = row['days']
    country = row['country']
    try:
        return np.interp(days, mapper[country]['days'].values,
                         mapper[country]['apples_china'].values)
    except KeyError:
        return np.nan

ステップ3

pd.DataFrame.apply手順2の関数を行ごとに適用するために使用します。

df_portfolio['price'] = df_portfolio.apply(interpolator, mapper=country_map, axis=1)

結果

print(df_portfolio)

  country  days     price
0   china    12  5.339130
1     usa    45       NaN
2  europe    99       NaN
3   china   101  6.390746
4   china   102  6.393433
5   india   300       NaN

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パンダは、異なるデータフレームの各行の情報に基づいて新しいデータフレームを作成します

分類Dev

パンダデータフレームは、指定された間隔で列の値を変更します

分類Dev

パンダを使用して、サイズの異なる2つのデータフレーム間で異なる行を検索します

分類Dev

パンダのデータフレームは、異なるデータフレームの値を検索し、値を割り当てます

分類Dev

別の列の値を指定して、パンダデータフレームの連続する時間枠を減算します

分類Dev

Pythonパンダデータフレームは欠落データを補間します

分類Dev

パンダのデータフレームをリサンプリングし、時系列データの欠落値を補間します

分類Dev

パンダで線形補間を使用して時系列を異なるサンプル時間と比較する

分類Dev

パンダは新しい長さでデータフレームを補間します

分類Dev

2つの別々のパンダデータフレーム内のすべての値の間を補間する方法は?

分類Dev

異なるサイズのデータフレームを約rで補間します

分類Dev

比較する前に、2つの数値パンダデータフレーム(x、y)を補間と比較します

分類Dev

パンダデータフレームの小さなギャップのみを補間(または外挿)します

分類Dev

部分的なパンダデータフレームを補間する方法

分類Dev

Pythonは月次値を日次値に補間します(線形):パンダ

分類Dev

numpy.interpを使用してパンダデータフレームから値を補間しようとしていますが、間違った補間が継続的に返されます

分類Dev

パンダを使用してPythonでデータフレームの各行の最小二乗線形回帰を見つける

分類Dev

パンダを使用して2つのデータフレーム間の列を合計する方法は?

分類Dev

列間のマップを使用してパンダのデータフレームを「再配置」する方法は?

分類Dev

並べ替えられたパンダのデータフレームは、フォーマットに応じて異なる値を返します

分類Dev

パンダの異なるデータフレームから列を追加して列を作成します

分類Dev

パンダ間隔を使用して値を検索し、別のデータフレームを埋める方法

分類Dev

パンダのインデックスが異なる2つのデータフレーム間にfuncを適用します

分類Dev

パンダデータフレームは時間なしで文字列をデータに変換します

分類Dev

2つのパンダデータフレーム列間の差異の分布をプロットします

分類Dev

日付間のパンダデータフレーム行を選択し、列の値を設定します

分類Dev

パンダは、データフレーム内の2つの行の値の間に値を追加する方法を説明します

分類Dev

rのデータフレームポイントを補間します

分類Dev

データフレームを「ストレッチ」し、既存の値の間を補間する方法

Related 関連記事

  1. 1

    パンダは、異なるデータフレームの各行の情報に基づいて新しいデータフレームを作成します

  2. 2

    パンダデータフレームは、指定された間隔で列の値を変更します

  3. 3

    パンダを使用して、サイズの異なる2つのデータフレーム間で異なる行を検索します

  4. 4

    パンダのデータフレームは、異なるデータフレームの値を検索し、値を割り当てます

  5. 5

    別の列の値を指定して、パンダデータフレームの連続する時間枠を減算します

  6. 6

    Pythonパンダデータフレームは欠落データを補間します

  7. 7

    パンダのデータフレームをリサンプリングし、時系列データの欠落値を補間します

  8. 8

    パンダで線形補間を使用して時系列を異なるサンプル時間と比較する

  9. 9

    パンダは新しい長さでデータフレームを補間します

  10. 10

    2つの別々のパンダデータフレーム内のすべての値の間を補間する方法は?

  11. 11

    異なるサイズのデータフレームを約rで補間します

  12. 12

    比較する前に、2つの数値パンダデータフレーム(x、y)を補間と比較します

  13. 13

    パンダデータフレームの小さなギャップのみを補間(または外挿)します

  14. 14

    部分的なパンダデータフレームを補間する方法

  15. 15

    Pythonは月次値を日次値に補間します(線形):パンダ

  16. 16

    numpy.interpを使用してパンダデータフレームから値を補間しようとしていますが、間違った補間が継続的に返されます

  17. 17

    パンダを使用してPythonでデータフレームの各行の最小二乗線形回帰を見つける

  18. 18

    パンダを使用して2つのデータフレーム間の列を合計する方法は?

  19. 19

    列間のマップを使用してパンダのデータフレームを「再配置」する方法は?

  20. 20

    並べ替えられたパンダのデータフレームは、フォーマットに応じて異なる値を返します

  21. 21

    パンダの異なるデータフレームから列を追加して列を作成します

  22. 22

    パンダ間隔を使用して値を検索し、別のデータフレームを埋める方法

  23. 23

    パンダのインデックスが異なる2つのデータフレーム間にfuncを適用します

  24. 24

    パンダデータフレームは時間なしで文字列をデータに変換します

  25. 25

    2つのパンダデータフレーム列間の差異の分布をプロットします

  26. 26

    日付間のパンダデータフレーム行を選択し、列の値を設定します

  27. 27

    パンダは、データフレーム内の2つの行の値の間に値を追加する方法を説明します

  28. 28

    rのデータフレームポイントを補間します

  29. 29

    データフレームを「ストレッチ」し、既存の値の間を補間する方法

ホットタグ

アーカイブ