Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
Python 向熊猫添加行以完成序列_Python_Pandas - Fatal编程技术网

Python 向熊猫添加行以完成序列

Python 向熊猫添加行以完成序列,python,pandas,Python,Pandas,完成熊猫数据帧的最佳方式是什么: order | group | value -3 | a | 0 -2 | a | 3 -4 | b | 2 我想自动添加空行,以便order列以0结尾,按组值拆分(不必按顺序排列,只需要行存在) 您可以使用列表理解和重新索引 dfs = [df[df['group'] == g] for g in df.group.unique()] df_f = pd.concat([a.set_index('ord

完成熊猫数据帧的最佳方式是什么:

order |  group | value
 -3   |   a    |  0
 -2   |   a    |  3
 -4   |   b    |  2
我想自动添加空行,以便order列以0结尾,按组值拆分(不必按顺序排列,只需要行存在)


您可以使用
列表理解
重新索引

dfs = [df[df['group'] == g] for g in df.group.unique()]
df_f = pd.concat([a.set_index('order').reindex(range(a.iloc[0].order, 1)) for a in dfs])
df_f['group'] = df_f.group.ffill()

        group   value
order       
-3      a       0.0
-2      a       3.0
-1      a       NaN
0       a       NaN
-4      b       2.0
-3      b       NaN
-2      b       NaN
-1      b       NaN
0       b       NaN

使用
groupby
然后
reindex

df.groupby('group').\
   apply(lambda x : x.set_index('order').reindex(-np.arange(max(x['order'].abs()+1)))).\
      drop('group',1).reset_index()
Out[135]: 
  group  order  value
0     a      0    NaN
1     a     -1    NaN
2     a     -2    3.0
3     a     -3    0.0
4     b      0    NaN
5     b     -1    NaN
6     b     -2    NaN
7     b     -3    NaN
8     b     -4    2.0

非常感谢。你能解释一下发生了什么吗?@NBC我们只是一组一组地分组,然后为每个子集重新编制索引,将顺序设置为dex,并使用最小值(即abs最大值)为每个组创建索引
df.groupby('group').\
   apply(lambda x : x.set_index('order').reindex(-np.arange(max(x['order'].abs()+1)))).\
      drop('group',1).reset_index()
Out[135]: 
  group  order  value
0     a      0    NaN
1     a     -1    NaN
2     a     -2    3.0
3     a     -3    0.0
4     b      0    NaN
5     b     -1    NaN
6     b     -2    NaN
7     b     -3    NaN
8     b     -4    2.0