我正在清理日期的数据框列,并且编写了一个函数,该函数以某种方式清除某些条目,并以另一种方式清除所有其他条目。
我要清理数据,分两个系列进行。我已经记录了原始列中每个条目的索引位置,并且知道两个干净系列中的每个索引中都有哪些索引。
我的麻烦是将两个系列同时分配给dataframe列。我就是做不到。
我的函数f接收dates列并返回4的列表:第一个系列[0]中的列的索引,第一个系列中的干净条目[1],第二个系列中的列索引[2],干净第二系列的文章[3]。
因此,当我执行f(column)[3]和f(column)[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
如何将两个系列的值分配给dates_column?我也不明白格式的改变