Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 将"u"值填入';我不能和groupby一起工作_Pandas_Python 2.7 - Fatal编程技术网

Pandas 将"u"值填入';我不能和groupby一起工作

Pandas 将"u"值填入';我不能和groupby一起工作,pandas,python-2.7,Pandas,Python 2.7,我需要在pandas dataframe中为每个名称移位列,并用预定义的值填充生成的NA。下面是使用python 2.7编译的代码片段 将熊猫作为pd导入 d={'Name':['Petro','Petro','Petro','Petro','Mykola','Mykola','Mykola','Mykola','Mykola','Mykyta','Mykyta','Mykyta','Mykyta'], “月”:[1,2,3,4,5,1,2,3,4,5,1,2,3,4,4,5], “价值”:[2

我需要在pandas dataframe中为每个名称移位列,并用预定义的值填充生成的NA。下面是使用python 2.7编译的代码片段

将熊猫作为pd导入
d={'Name':['Petro','Petro','Petro','Petro','Mykola','Mykola','Mykola','Mykola','Mykola','Mykyta','Mykyta','Mykyta','Mykyta'],
“月”:[1,2,3,4,5,1,2,3,4,5,1,2,3,4,4,5],
“价值”:[25,2.5,24.6,28,26.4,35,24,35,22,27,30,30,34,30,23]
}
数据=pd.数据帧(d)
data['ValueLag']=data.groupby('Name').Value.shift(-1,fill_Value=20)
打印数据
运行上面的代码后,我得到以下输出

    Month    Name  Value  ValueLag
0       1   Petro   25.0       2.5
1       2   Petro    2.5      24.6
2       3   Petro   24.6      28.0
3       4   Petro   28.0      26.4
4       5   Petro   26.4       NaN
5       1  Mykola   35.0      24.0
6       2  Mykola   24.0      35.0
7       3  Mykola   35.0      22.0
8       4  Mykola   22.0      27.0
9       5  Mykola   27.0       NaN
10      1  Mykyta   30.0      30.0
11      2  Mykyta   30.0      34.0
12      3  Mykyta   34.0      30.0
13      4  Mykyta   30.0      23.0
14      5  Mykyta   23.0       NaN
看起来填充值在这里不起作用。我需要NaN填上一些数字,比如说4

或者,如果要讲述所有的故事,我需要像这样扩展最后一个值

   Month    Name  Value  ValueLag
0       1   Petro   25.0       2.5
1       2   Petro    2.5      24.6
2       3   Petro   24.6      28.0
3       4   Petro   28.0      26.4
4       5   Petro   26.4       26.4
5       1  Mykola   35.0      24.0
6       2  Mykola   24.0      35.0
7       3  Mykola   35.0      22.0
8       4  Mykola   22.0      27.0
9       5  Mykola   27.0       27.0
10      1  Mykyta   30.0      30.0
11      2  Mykyta   30.0      34.0
12      3  Mykyta   34.0      30.0
13      4  Mykyta   30.0      23.0
14      5  Mykyta   23.0       23.0

如果周期数为正数,是否有办法向前或向后填充最后一个值?

填充值似乎是按组而不是单个值填充的。试试下面的方法

data['ValueLag'] = data.groupby('Name').Value.shift(-1).ffill()

提供的示例看起来像是
ffill
,而不是
fillna(20)
@jezrael以及此处的add
.ffill()