一意の文字列のデータフレームがあり、特定の文字列の行と列を検索したいと思います。最終的にこのデータフレームをExcelスプレッドシートにエクスポートするため、これらの値が必要です。これらの値を取得するためにこれまでに見つけた最も簡単な方法は、次のとおりです。
jnames = list(df.iloc[0].to_frame().index)
for i in jnames:
for k in df[i]:
if 'searchstring' in str(k):
print('Column: {}'.format( (jnames.index(i) + 1 ) ) )
print('Row: {}'.format( list( df[i] ).index('searchstring') ) )
break
パンダの固有の機能をより有効に活用するソリューションを誰かがアドバイスできますか?
再現可能なコード/データなしで、データフレームを作成し、1つの簡単な方法を示します。
セットアップ
import pandas as pd, numpy as np
df = pd.DataFrame([['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'b']])
データフレームは次のようになります。
0 1 2
0 a b c
1 d e f
2 g h b
解決
result = list(zip(*np.where(df.values == 'b')))
結果
[(0, 1), (2, 2)]
説明
df.values
numpy
データフレームの基礎となる配列にアクセスします。np.where
指定された条件を満たす座標の配列を作成します。zip(*...)
座標ペアに変換[x-coords-array, y-coords-array]
し(x, y)
ます。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加