具有特定参数的多个字符串选择

时间:2017-03-13 10:49:18

标签: python pandas

我正在尝试对一列日期进行多项选择和修改。日期将以字符串形式转换为其他应用程序。 现在我想使用df.loc[]选择1900年的所有日期。 日期格式为mm / dd / yyyy(仍为字符串) 所以我的尝试:

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

提出此错误:

  

IndexingError('提供了不可对齐的布尔系列键')   pandas.core.indexing.IndexingError:提供了Unalignable boolean Series key

有可能吗? 或者我必须使用df.get_value()

进行迭代

1 个答案:

答案 0 :(得分:1)

看起来你想要切割字符串,使用.str

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

取决于你真正打算做什么,转换到datetime更有意义:

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

然后你可以这样做:

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

使用datetime更有意义,因为数字操作只是工作,同时将数据保持为字符串并不容易使用