2017-03-13 2 views
1

日付の列に対して複数の選択と変更を実行しようとしています。日付は、他のアプリケーションのために文字列に変換されます。 今は、df.loc[]を使用して1900年のすべての日付を選択したいと考えています。 日付はmm/dd/yyyy形式(まだ文字列はカントー)である
だから私の挑戦:特定のパラメータを使用した複数の文字列選択

df.loc[df['Trade Date'][-4:]=='1900']=1 

レイズ、このエラー:

IndexingError('Unalignable boolean Series key provided') pandas.core.indexing.IndexingError: Unalignable boolean Series key provided

ことは可能ですか? または私はdf.get_value()

+1

'df.loc [df ['Trade Date']。str [-4:] = = '1900'] = 1' – EdChum

+0

天才! thx EdChum –

答えて

1

を反復しなければならないのは、文字列をスライスしたいようですが、この使用.str行うには、なります。より多くの意味を行うことができるあなたが本当にそれを行うことを意図した内容に応じ

df.loc[df['Trade Date'].str[-4:]=='1900']=1 

を日時に変換する:

df['Trade Date'] = pd.to_datetime(df['Trade Date']) 

は、あなたが行うことができます。

df.loc[df['Trade Date'].dt.year == 1900]=1 

数値演算は文字列としてデータを保持しながら動作するので意味があります

+0

私は文字列を使用します、私はちょうどデータを分類するために比較を行っています –

+0

OK、私の答えを受け入れることができますあなたの質問を解決した場合は、私の答えの左上に空の目盛りがあります、ありがとう – EdChum

+0

ああ私はそれが動作する方法を知っている私は答えを受け入れるために期限の終わりを待っていた –

関連する問題