特定のインデックス名(文字列)を新しいデータフレームにコピーする

緩む

既存のデータフレームの特定の行から新しいデータフレームを作成したいと思っています。インデックスは文字列名です(例:043-095(L01))。043で始まるインデックスを持つすべての行をコピーしたいと思います。

ワイルドカードを使用して行を呼び出してみました。

df_new = df_old.loc[df_old.index == '043*'] 

ただし、これにより空のデータフレームが表示され、列名のみがコピーされます。

次に、インデックス名のリストを作成し、ループを介してこれらを繰り返し呼び出すという、効率の低い方法を試しました。これも機能しませんでした:

list = list(df_old.index.get_values()) 
for i in list: 
    df_new = df_old.loc[df_old.index == i]

これにより、元のデータフレームの最後の列のみを含むデータフレームが生成されます。ただし、これは「over」というタイトルのインデックスであるため、私が探しているフィルタリングにも適合しません。

初期データフレームは次のとおりです。

                1    2    3    4    5      ...                 36            37            38            39            40
product                                    ...                                                                           
043-096(L00)  0.0  0.0  0.0  0.0  0.0      ...       5.643140e+00  5.340900e+00  5.088400e+00  4.468070e+00  4.092830e+00
041-092(L01)  0.0  0.0  0.0  0.0  0.0      ...       2.312400e+01  2.292020e+01  2.166400e+01  2.062450e+01  1.961710e+01
043-093(L01)  0.0  0.0  0.0  0.0  0.0      ...       2.019000e-01  1.145850e+00  6.568850e+00  1.580680e+01  2.964780e+01
041-093(L00)  0.0  0.0  0.0  0.0  0.0      ...       3.929880e+01  3.760480e+01  3.625430e+01  3.542060e+01  3.510910e+01
041-093(L01)  0.0  0.0  0.0  0.0  0.0      ...       6.371910e+00  5.821850e+00  5.535770e+00  5.392260e+00  5.291000e+00
043-096(L01)  0.0  0.0  0.0  0.0  0.0      ...       1.750060e+00  1.715700e+00  1.681990e+00  1.358840e+00  1.296470e+00
042-093(L16)  0.0  0.0  0.0  0.0  0.0      ...       1.172700e+00  1.178630e+01  3.434970e+01  7.109020e+01  1.136440e+02
043-093(L00)  0.0  0.0  0.0  0.0  0.0      ...       8.628490e+00  3.177190e+01  7.529960e+01  1.314360e+02  1.981620e+02
041-095(L01)  0.0  0.0  0.0  0.0  0.0      ...       8.165380e-03  8.903470e-03  8.237130e-03  8.687170e-03  9.185370e-03
042-093(L00)  0.0  0.0  0.0  0.0  0.0      ...       1.346020e+01  2.028300e+01  2.922050e+01  3.994700e+01  5.241390e+01
043-095(L00)  0.0  0.0  0.0  0.0  0.0      ...       1.453260e+02  1.051780e+02  7.979190e+01  6.791930e+01  5.806560e+01
043-094(L01)  0.0  0.0  0.0  0.0  0.0      ...       2.359510e+01  2.092200e+01  1.799270e+01  1.547530e+01  1.292230e+01
041-092(L00)  0.0  0.0  0.0  0.0  0.0      ...       5.922860e+01  5.580080e+01  5.150720e+01  4.853910e+01  4.493510e+01
041-095(L00)  0.0  0.0  0.0  0.0  0.0      ...       1.530490e-01  1.583970e-01  1.407330e-01  1.371880e-01  1.355580e-01
041-091(L00)  0.0  0.0  0.0  0.0  0.0      ...       5.372560e+01  5.788070e+01  6.146730e+01  6.655750e+01  7.144250e+01
041-090(L02)  0.0  0.0  0.0  0.0  0.0      ...       0.000000e+00  5.594050e-05  8.369660e-04  2.903470e-03  1.917730e-02
041-090(L00)  0.0  0.0  0.0  0.0  0.0      ...       0.000000e+00  1.534300e-03  8.703700e-03  4.770440e-02  1.738080e-01
041-094(L01)  0.0  0.0  0.0  0.0  0.0      ...       1.385020e+00  1.635600e+00  1.817290e+00  2.056140e+00  2.293480e+00
043-094(L00)  0.0  0.0  0.0  0.0  0.0      ...       9.074630e+02  9.164940e+02  8.776860e+02  7.838060e+02  6.768200e+02
041-091(L01)  0.0  0.0  0.0  0.0  0.0      ...       1.810710e+01  2.097550e+01  2.283200e+01  2.553310e+01  2.845680e+01
039-089(L01)  0.0  0.0  0.0  0.0  0.0      ...       7.822260e-02  9.664860e-02  1.074630e-01  1.214690e-01  1.348120e-01
043-097(L01)  0.0  0.0  0.0  0.0  0.0      ...       1.754870e-07  7.402690e-08  5.900700e-08  1.725820e-08  1.416280e-08
041-094(L00)  0.0  0.0  0.0  0.0  0.0      ...       9.471510e-01  1.195480e+00  1.458680e+00  1.727560e+00  2.054990e+00
039-089(L00)  0.0  0.0  0.0  0.0  0.0      ...       1.983690e-02  2.039220e-02  2.140960e-02  2.252160e-02  2.330300e-02
043-095(L01)  0.0  0.0  0.0  0.0  0.0      ...       7.249500e+00  6.697730e+00  6.278970e+00  6.019280e+00  5.670850e+00
043-097(L00)  0.0  0.0  0.0  0.0  0.0      ...       6.121160e-06  1.084730e-06  6.949800e-07  1.232050e-07  1.013090e-07
sum           0.0  0.0  0.0  0.0  0.0      ...       1.316938e+03  1.325456e+03  1.336783e+03  1.343518e+03  1.362432e+03
over          NaN  NaN  NaN  NaN  NaN      ...       5.504817e-03  5.053151e-03  4.697077e-03  4.480238e-03  4.162301e-03

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

johnnyb

このようなものを試して、挿入した行のみを印刷します。別のコメント投稿者が追加したように、str.containsの代わりにstartswithを使用することもできます。より明示的なメソッドはstr.startswithメソッドです。

import pandas as pd


df = pd.read_csv("testdata.txt", header=None)

print(df[df.index.str.contains("043-")]) # string contains version

print(df[df.index.str.startswith("043")]) # index starts with 

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

パンダ:インデックス列のコピーであるデータフレームに新しい列を追加する

分類Dev

インデックスを比較するPandasデータフレームに新しい列を追加します

分類Dev

列インデックスに基づいてデータフレーム列の名前を変更する

分類Dev

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

分類Dev

特定のインデックスでのみデータ フレームの文字列行を連結します

分類Dev

あるデータフレームから別のデータフレームに列をマッピングして新しい列を作成する

分類Dev

他のデータフレームのインデックスのリストに従って、他のデータフレームからデータフレームに新しい列を追加する

分類Dev

R-既存の列と一致する値のインデックスに基づいて新しい列データフレームを作成します

分類Dev

複数の列のインデックスに基づいて、あるデータフレームから別のデータフレームに値をコピーします

分類Dev

パンダのデータフレームの特定のインデックスに新しい行を挿入する

分類Dev

ディクショナリの値を既存の列にマッピングして、データフレームに新しい列を作成する

分類Dev

特定の値/文字列がデータフレーム全体で発生する場合、そのインデックス値を合計したい

分類Dev

2番目のルックアップデータフレームのx、yインデックス番号を使用して、データフレームに新しい列を作成するにはどうすればよいですか?

分類Dev

パンダを使用して新しいデータフレームを新しい列にインデックス付けする

分類Dev

インデックスに基づいて固定データフレーム範囲を選択し、新しいデータフレームに追加する

分類Dev

特定のインデックスの後にデータフレーム列に値を追加する

分類Dev

一部のElasticSearchデータを新しいインデックスにコピーする方法

分類Dev

列インデックスを使用して、最初の列の特定の文字列で始まるデータフレーム行を削除する方法

分類Dev

データフレーム列の文字列をインデックス値に変換する

分類Dev

データフレームの新しい列に値を割り当てると、「データフレームからのスライスのコピーに値を設定しようとしています」というエラーが発生します。

分類Dev

特定のデータフレームにインデックス列のみを追加する方法

分類Dev

MultiIndexデータフレームパンダの特定のレベルに新しいインデックスを追加します

分類Dev

同様のインデックスを持つ別のデータフレームに列をコピーする方法をパンダ

分類Dev

Sparkデータフレームの文字列に文字のインデックスの列を追加するにはどうすればよいですか?

分類Dev

合計行をデータフレームに追加した後、パンダのデータフレームインデックスの名前を削除する

分類Dev

新しいデータフレームで元のインデックスを保持する方法

分類Dev

最初のインデックス番号に文字列を挿入するpandasデータフレーム

分類Dev

データフレーム内の特定の列を削除します-インデックスにないアイテムを無視します

分類Dev

追加されていない特定の行インデックスで、データフレームに新しい行を追加しますか?

Related 関連記事

  1. 1

    パンダ:インデックス列のコピーであるデータフレームに新しい列を追加する

  2. 2

    インデックスを比較するPandasデータフレームに新しい列を追加します

  3. 3

    列インデックスに基づいてデータフレーム列の名前を変更する

  4. 4

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

  5. 5

    特定のインデックスでのみデータ フレームの文字列行を連結します

  6. 6

    あるデータフレームから別のデータフレームに列をマッピングして新しい列を作成する

  7. 7

    他のデータフレームのインデックスのリストに従って、他のデータフレームからデータフレームに新しい列を追加する

  8. 8

    R-既存の列と一致する値のインデックスに基づいて新しい列データフレームを作成します

  9. 9

    複数の列のインデックスに基づいて、あるデータフレームから別のデータフレームに値をコピーします

  10. 10

    パンダのデータフレームの特定のインデックスに新しい行を挿入する

  11. 11

    ディクショナリの値を既存の列にマッピングして、データフレームに新しい列を作成する

  12. 12

    特定の値/文字列がデータフレーム全体で発生する場合、そのインデックス値を合計したい

  13. 13

    2番目のルックアップデータフレームのx、yインデックス番号を使用して、データフレームに新しい列を作成するにはどうすればよいですか?

  14. 14

    パンダを使用して新しいデータフレームを新しい列にインデックス付けする

  15. 15

    インデックスに基づいて固定データフレーム範囲を選択し、新しいデータフレームに追加する

  16. 16

    特定のインデックスの後にデータフレーム列に値を追加する

  17. 17

    一部のElasticSearchデータを新しいインデックスにコピーする方法

  18. 18

    列インデックスを使用して、最初の列の特定の文字列で始まるデータフレーム行を削除する方法

  19. 19

    データフレーム列の文字列をインデックス値に変換する

  20. 20

    データフレームの新しい列に値を割り当てると、「データフレームからのスライスのコピーに値を設定しようとしています」というエラーが発生します。

  21. 21

    特定のデータフレームにインデックス列のみを追加する方法

  22. 22

    MultiIndexデータフレームパンダの特定のレベルに新しいインデックスを追加します

  23. 23

    同様のインデックスを持つ別のデータフレームに列をコピーする方法をパンダ

  24. 24

    Sparkデータフレームの文字列に文字のインデックスの列を追加するにはどうすればよいですか?

  25. 25

    合計行をデータフレームに追加した後、パンダのデータフレームインデックスの名前を削除する

  26. 26

    新しいデータフレームで元のインデックスを保持する方法

  27. 27

    最初のインデックス番号に文字列を挿入するpandasデータフレーム

  28. 28

    データフレーム内の特定の列を削除します-インデックスにないアイテムを無視します

  29. 29

    追加されていない特定の行インデックスで、データフレームに新しい行を追加しますか?

ホットタグ

アーカイブ