から一定の条件を満たし、最後の発生を抽出する方法を、私はリストとして、次のデータを持っている:Pythonの - たとえば、リスト
'A'
、
'B'
、および
'C'
のための今
l = [['A', 'aa', '1', '300'],
['A', 'ab', '2', '30'],
['A', 'ac', '3', '60'],
['B', 'ba', '5', '50'],
['B', 'bb', '4', '10'],
['C', 'ca', '6', '50']]
、私が取得したいです彼らの最後の出現、すなわち:
[['A', 'ab', '3', '30'],
['B', 'bb', '4', '10'],
['C', 'ca', '6', '50']]
またはさらに、これらの発生、すなわちで3列目:
['3', '4', '6']
現在、私はこれに対処する方法は、次のとおりです。
import pandas as pd
df = pd.DataFrame(l, columns=['u', 'w', 'y', 'z'])
df.set_index('u', inplace=True)
ll = []
for letter in df.index.unique():
ll.append((df.ix[letter, 'y'][-1]))
はその後、私%timeit
、それは示しています。これを行う方法があるかどう
>> The slowest run took 27.86 times longer than the fastest.
>> This could mean that an intermediate result is being cached.
>> 1000000 loops, best of 3: 887 ns per loop
はちょうど私のコードよりも少ない時間を使って不思議?ありがとう!私はあなたの質問を理解してわからないにもかかわらず
あなたが現在持っている非効率な方法は何ですか? – jonrsharpe
なぜ「A」の最後のオカレンスは2番目のもので、3番目のアレイではないのですか? –
あなたのリストで逆の使い方をしてください - [条件に一致する反復可能文字から最初の項目を取得する最も良い方法は何ですか?](http://stackoverflow.com/questions/2361426/what-is-the- –