如何将列的一部分添加到新的pandas数据框中?

时间:2019-12-05 03:26:24

标签: python pandas dataframe

所以我有一个长度为90的熊猫数据框,这并不重要 可以说我有:

df

A   date
1   2012-01-01
4   2012-02-01
5   2012-03-01
7   2012-04-01
8   2012-05-01
9   2012-06-01
2   2012-07-01
1   2012-08-01
3   2012-09-01
2   2012-10-01
5   2012-11-01
9   2012-12-01
0   2013-01-01
6   2013-02-01

并且我创建了一个新的数据框

df_copy=df.copy() 
index = range(0,3)
df1 = pd.DataFrame(index=index, columns=range((len(df_copy.columns))))
df1.columns = df_copy.columns                     

df1['date'] = pd.date_range('2019-11-01','2020-01-01' , freq='MS')-pd.offsets.MonthBegin(1)

应该创建这样的数据框

A   date
na   2019-10-01
na   2019-11-01
na   2019-12-01

因此,我使用以下代码来获取新数据框中的A值

df1['A'] = df1['A'].iloc[9:12]

我希望结果是这样

A   date
2   2019-10-01
5   2019-11-01
9   2019-12-01

所以我希望给后三个值分配一个在新数据框中的iloc位置为9-12的值,索引不同,两个数据框中的日期也是如此。有没有办法做到这一点,因为

 df1['A'] = df1['A'].iloc[9:12]

似乎不起作用

1 个答案:

答案 0 :(得分:0)

据我所知,您可以通过生成几个新数据框来解决此问题

df_copy=df.copy() 
index = range(0,1)
df1 = pd.DataFrame(index=index, columns=range((len(df_copy.columns))))
df1.columns = df_copy.columns                     

df1['date'] = pd.date_range('2019-11-01','2019-11-01' , freq='MS')-pd.offsets.MonthBegin(1)
df1['A'] = df1['A'].iloc[9]

然后将其附加到原始数据帧并重复该操作有点令人费解,但这似乎是我能想到的唯一解决方案