我正在清理日期的dataframe列,我编写了一个函数,它以某种方式清理一些条目,以另一种方式清理所有其他条目。
我正在清理数据,分成两个独立的系列。我已经记录了原始列中每个条目的索引位置,并且我知道在两个干净的序列中每个条目都有哪些索引。
函数f接收dates列并返回一个4的列表:第一个序列中列的索引[0]、第一个序列中的干净项[1]、第二个序列中列的索引[2]、第二个序列中的干净项[3]。
所以当我做f(列)[3]和f(列)[1]的时候,我得到了清洁熊猫系列。
#Function works:
>>> f(df['dates_column'])[0]
, 18812, 18813, 18814, 18815, 18816, 18817, 18818, 18819, 18820, 18821,
18822, 18823, 18824, 18825, 18826,
>>> f(df['dates_column'])[1].tail()
331849 2009-10-03
331850 2006-10-03
331851 2015-09-27
331852 1911-08-09
331853 2013-09-03
Name: dates_column, dtype: datetime64[ns]
>>> f(df['dates_column'])[3].tail()
331898 1996-12-11
331899 2004-06-01
331900 2010-03-12
331901 2016-01-06
331902 2010-03-12
Name: dates_column, dtype: datetime64[ns]
>>> f(df['dates_column'])[1].head()
0 1900-01-01
1 1900-01-01
2 1900-01-01
3 1900-01-01
4 1900-01-01
Name: dates_column, dtype: datetime64[ns]
>>> f(df['dates_column'])[3].head()
40036 2002-06-18
40037 2005-04-01
40038 2002-04-01
40039 2003-05-02
40040 2006-10-01
Name: dates_column, dtype: datetime64[ns]
#But cannot assign properly..
>>> df['dates_column'][function(df['dates_column'])[0]] =
f(df['dates_column'])[1]
<input>:1: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
>>> df['dates_column'][f(df['dates_column'])[2]] =
f(df['dates_column'])[3]
<input>:1: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
#And it gets all crazy in the head..
>>> df['dates_column'].head()
0 -2208988800000000000
1 -2208988800000000000
2 -2208988800000000000
3 -2208988800000000000
4 -2208988800000000000
Name: dates_column, dtype: object
#And in the tail
>>> df['dates_column'].tail()
31898 1996-12-11 00:00:00
331899 2004-06-01 00:00:00
331900 2010-03-12 00:00:00
331901 2016-01-06 00:00:00
331902 2010-03-12 00:00:00
Name: dates_column, dtype: object
如何将两个序列的值赋给日期列?我也不明白格式的改变