Python 仅使用新值写入第一行

Python 仅使用新值写入第一行,python,pandas,Python,Pandas,我正在尝试创建一个脚本,将所有日期设置为一个月的第一天,然后找到模式,这样我就可以覆盖不同月份的任何掉队者 我几乎所有的东西都在工作,但出于某种原因,当我用mode覆盖date列时,它只会用新值设置第一行,其他的都设置为NaT arrange_df.loc[:, 'date'] = date_mode 我不知道为什么会发生这种情况。我尝试了以下方法: arrange_df['date'] = date_mode 这仍然只设置第一个值 即使我指定了一个段(比如[0:3]),它仍然没有设置该段中

我正在尝试创建一个脚本,将所有日期设置为一个月的第一天,然后找到模式,这样我就可以覆盖不同月份的任何掉队者

我几乎所有的东西都在工作,但出于某种原因,当我用mode覆盖date列时,它只会用新值设置第一行,其他的都设置为NaT

arrange_df.loc[:, 'date'] = date_mode
我不知道为什么会发生这种情况。我尝试了以下方法:

arrange_df['date'] = date_mode
这仍然只设置第一个值

即使我指定了一个段(比如[0:3]),它仍然没有设置该段中的所有内容

如果您需要它-以下是脚本:

arrange_df['date'] = arrange_df['date'].values.astype('datetime64[M]')
pd.to_datetime(arrange_df['date'], format='%Y%m%d')
date_mode = arrange_df['date'].mode()
arrange_df.loc[:, 'date'] = date_mode

感谢您的帮助

试试这个排列方式。loc[:,'date']=date\u mode.values它会起作用,因为你使用的是数据列模式,它会返回一系列的单个值,你试图将一系列的单个索引分配给整列,这就是为什么它会在索引0之后返回NaT。

试试这个排列方式,loc[:,'date']=date\u mode.values这将起作用,因为您采用的是数据列的模式,它将返回单个值的序列,并且您尝试将单个索引的序列分配给整个列,这就是为什么它在索引0之后返回NaT。

date\u mode的形状是什么?date\u mode的形状是什么?您好,你的答案会更详细,如果你在向你面前的人解释为什么它能解决这个问题。Best@BaptisteMille-马蒂亚斯:我更新了答案,希望对你有所帮助。@BilalAhmed非常感谢你!这很有效,我也很感谢你的解释。@MadisonLeopold这是我的荣幸。嗨,Bilal,如果你能详细说明为什么它能解决这个问题,你的回答会更好,就像你在向你面前的人解释一样。Best@BaptisteMille-马蒂亚斯:我更新了答案,希望对你有所帮助。@BilalAhmed非常感谢你!这很有效,我也很感谢你的解释。@MadisonLeopold这是我的荣幸。