非インデックス列で複数のパンダデータフレームの共通部分を見つける方法

ライアンハント

私はこのQに役立つ答えを見つけ、同様に投稿します。

データフレームのリストを取得し、インデックス以外の列で共通の値を共有する行のみを持つ新しいdfを作成するにはどうすればよいですか?

基本的に交差点ですが、いくつかの理由で連結とマージは機能しません。

私は以下を見て、必要なものが得られませんでした:

2つのPandasデータフレームで共通の行(交差)を見つける

パンダはdfエラーをマージします

列ラベルに基づいてデータフレームの共通部分を取得するにはどうすればよいですか?

複数のパンダデータフレームの共通部分

複数の列に基づいてデータフレームの共通部分を見つける方法は?

複数の列を持つパンダデータフレームの共通部分

パンダでデータフレームの共通部分を作成する方法

ライアンハント

これが私が実装することになったものです。これをより効率的に行う他の方法があるかどうかを確認したいと思います。

import copy

dfs_array = [ df1, df2, df3, df4, ... ]

def intersection_of_dfs(dfs_array,col='Ticker'):
    if len(dfs_array) <= 1:
        # if we only have 1 or 0 elements simply return the origial array
        # no error is given, logic must be created for the return value.
        return dfs_array
    # does a shallow copy only.
    dfs = copy.copy(dfs_array)
    length = len(dfs) 
    while length > 1:
        df1 = dfs.pop()
        df2 = dfs.pop()
        df0 = df1.loc[ df1[col].isin( df2[col].values ) ]
        dfs.insert(0,df0)
        length = len(dfs)
    return dfs

マージを使用するという提案は、インデックスと列の見出しを壊してしまうため、機能しません。

これはマージが与えるものです:

>     [   open_x_x  high_x_x  low_x_x  close_x_x  volume_x_x Ticker  ...  LowAboveShort_y_y  ShortAboveLong_y_y  Return_y_y  DayDiff_y_y 
> AboveBelow_y_y  ShortToLong_y_y
>     0     52.60     52.68    52.24    52.4779        7632   AADR  ...            0.28214            1.087176    0.043298     2.600000             2.0         8.000000
>     1     14.03     14.03    14.03    14.0300         359   AAMC  ...            0.17472            0.628733    0.202228     1.333333             7.0         2.600000
>     2      2.15      2.15     1.72     1.9500       10095   AAME  ...           -0.20068            0.107564    0.114286     1.000000             1.0         0.636364
>     
>     [3 rows x 61 columns]]

そして、これは以下のコードが与えるものです:

>     [             open   high    low    close  volume Ticker  Difference     LongMA   ShortMA  HighBelowShort  LowAboveShort 
> ShortAboveLong    Return   DayDiff  AboveBelow  ShortToLong
>     timestamp                                                                                                                                                                           
>     2019-12-12  52.60  52.68  52.24  52.4779    7632   AADR      0.1379  50.870684  51.95786         0.72214        0.28214        1.087176  0.043298  2.600000         2.0     8.000000
>     2019-12-12  14.03  14.03  14.03  14.0300     359   AAMC     -0.0100  13.226547  13.85528         0.17472        0.17472        0.628733  0.202228  1.333333         7.0     2.600000
>     2019-12-12   2.15   2.15   1.72   1.9500   10095   AAME      0.1900   1.813116   1.92068         0.22932       -0.20068        0.107564  0.114286  1.000000         1.0     0.636364]

列見出しと同様にタイムスタンプがどのように維持されるかに注意してください。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

groupbyでパンダデータフレームインデックスの共通部分を見つける

分類Dev

複数のパンダデータフレームの列のペアと任意の順序のペアの共通部分を見つける方法は?

分類Dev

条件を満たすパンダデータフレーム内のデータのインデックスと列を見つける方法は?

分類Dev

パンダのデータフレームで重複を見つける方法

分類Dev

複数のデータフレームで共通の要素を見つける方法

分類Dev

複数のパンダデータフレームの共通部分

分類Dev

Python:パンダのデータフレームでインデックスを見つけるための高速な方法はどれですか?

分類Dev

パンダのデータフレーム行で最後のクラスターを見つける方法は?

分類Dev

pandas pythonで、列とインデックスがまったく同じで値が異なるデータフレームのリストの共通部分を見つける方法は?

分類Dev

パンダのデータフレームの各行でゼロ以外の値の列インデックスのセットを見つけます

分類Dev

パンダのデータフレームに複数回インデックスを付ける高速な方法

分類Dev

Pythonデータフレームで共通の日付(またはインデックス)を共有しない行を見つける方法

分類Dev

パンダデータフレームのインデックスとして複数の列を使用する

分類Dev

パンダ:データフレーム内の2つの属性の共通部分を表す列を追加する方法

分類Dev

パンダ:データフレーム列で特定のパターンを見つける方法は?

分類Dev

パンダデータフレーム内の2つのインデックス間の最大値を見つける方法

分類Dev

他の列の望ましい部分にインデックスを付けて、パンダデータフレームに新しい列を作成する方法

分類Dev

パンダは、値のリストを指定して、データフレーム列で最も近い値のインデックスを見つけます

分類Dev

パンダのデータフレームインデックス間のギャップを見つける方法は?

分類Dev

pandasデータフレームで特定の部分文字列が最初に出現するインデックスの場所を見つける

分類Dev

関数からパンダデータフレームの複数の列に複数の戻り値を見つける方法は?

分類Dev

パンダでデータフレームの複数の列スライスを取得する方法

分類Dev

複数のデータフレームを持つパンダのマルチインデックス

分類Dev

パンダデータフレームで最後のイベントの日付を見つける方法

分類Dev

パンダデータフレームでNaNを含む行の整数インデックスを見つける

分類Dev

パンダデータフレーム同じインデックスを持つ複数の行

分類Dev

データフレームrの特定の行のインデックスを見つける方法

分類Dev

Pythonでデータフレームの行ごとに値のインデックスを見つけ、次の列の値を抽出する方法

分類Dev

複数のデータフレーム列間で共通の要素を見つける

Related 関連記事

  1. 1

    groupbyでパンダデータフレームインデックスの共通部分を見つける

  2. 2

    複数のパンダデータフレームの列のペアと任意の順序のペアの共通部分を見つける方法は?

  3. 3

    条件を満たすパンダデータフレーム内のデータのインデックスと列を見つける方法は?

  4. 4

    パンダのデータフレームで重複を見つける方法

  5. 5

    複数のデータフレームで共通の要素を見つける方法

  6. 6

    複数のパンダデータフレームの共通部分

  7. 7

    Python:パンダのデータフレームでインデックスを見つけるための高速な方法はどれですか?

  8. 8

    パンダのデータフレーム行で最後のクラスターを見つける方法は?

  9. 9

    pandas pythonで、列とインデックスがまったく同じで値が異なるデータフレームのリストの共通部分を見つける方法は?

  10. 10

    パンダのデータフレームの各行でゼロ以外の値の列インデックスのセットを見つけます

  11. 11

    パンダのデータフレームに複数回インデックスを付ける高速な方法

  12. 12

    Pythonデータフレームで共通の日付(またはインデックス)を共有しない行を見つける方法

  13. 13

    パンダデータフレームのインデックスとして複数の列を使用する

  14. 14

    パンダ:データフレーム内の2つの属性の共通部分を表す列を追加する方法

  15. 15

    パンダ:データフレーム列で特定のパターンを見つける方法は?

  16. 16

    パンダデータフレーム内の2つのインデックス間の最大値を見つける方法

  17. 17

    他の列の望ましい部分にインデックスを付けて、パンダデータフレームに新しい列を作成する方法

  18. 18

    パンダは、値のリストを指定して、データフレーム列で最も近い値のインデックスを見つけます

  19. 19

    パンダのデータフレームインデックス間のギャップを見つける方法は?

  20. 20

    pandasデータフレームで特定の部分文字列が最初に出現するインデックスの場所を見つける

  21. 21

    関数からパンダデータフレームの複数の列に複数の戻り値を見つける方法は?

  22. 22

    パンダでデータフレームの複数の列スライスを取得する方法

  23. 23

    複数のデータフレームを持つパンダのマルチインデックス

  24. 24

    パンダデータフレームで最後のイベントの日付を見つける方法

  25. 25

    パンダデータフレームでNaNを含む行の整数インデックスを見つける

  26. 26

    パンダデータフレーム同じインデックスを持つ複数の行

  27. 27

    データフレームrの特定の行のインデックスを見つける方法

  28. 28

    Pythonでデータフレームの行ごとに値のインデックスを見つけ、次の列の値を抽出する方法

  29. 29

    複数のデータフレーム列間で共通の要素を見つける

ホットタグ

アーカイブ