如何为数据框列的一个部分分配一个系列,如何为数据框列的另一部分分配另一个系列?

时间:2019-01-07 02:22:52

标签: python pandas dataframe assign

我正在清理日期的数据框列,并且编写了一个函数,该函数以某种方式清除某些条目,并以另一种方式清除所有其他条目。

我要清理数据,分两个系列进行。我已经记录了原始列中每个条目的索引位置,并且知道两个干净系列中的每个索引中都有哪些索引。

我的麻烦是将两个系列同时分配给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?我也不明白格式的改变

0 个答案:

没有答案