我正在尝试对一列日期进行多项选择和修改。日期将以字符串形式转换为其他应用程序。
现在我想使用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()
答案 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更有意义,因为数字操作只是工作,同时将数据保持为字符串并不容易使用