我正在尝试对日期列进行多项选择和修改。日期被转换为其他应用程序的字符串。现在我想选择 1900 年使用的所有日期df.loc[]
。日期格式为 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()
看起来您想对字符串进行切片,为此使用.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
使用 datetime 更有意义,因为数值运算只会起作用,同时将数据作为字符串保存起来并不容易
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句