Python Pandas 相当于excel 填充句柄?
Python Pandas equivalent to the excel fill handle?
有没有等同于MS Excel填充句柄的Pandas函数?
如果选择了多个单元格,它会向下填充数据或扩展一系列。我的特定应用程序是用数据框中特定行的特定列中的设置值填充,不一定填充系列。
正如其他人评论的那样,pandas 没有 GUI,但 ffill 提供了您正在寻找的功能。您还可以将 ffill 与 groupby 结合使用以获得更强大的功能。例如:
>>> df
A B
0 12 1
1 NaN 1
2 4 2
3 NaN 2
>>> df.A = df.groupby('B').A.ffill()
A B
0 12 1
1 12 1
2 4 2
3 4 2
编辑:如果您没有 NaN,您可以随时在要填充的位置创建 NaN。例如:
>>> df
Out[8]:
A B
0 1 2
1 3 3
2 4 5
>>> df.replace(3, np.nan)
Out[9]:
A B
0 1.0 2.0
1 NaN NaN
2 4.0 5.0
这个简单的函数基本上可以满足我的要求。我觉得如果ffill能修改成这样填写就好了...
def fill_down(df, col, val, start, end = 0, interval = 1):
if not end:
end = len(df)
for i in range(start,end,interval):
df[col].iloc[i] += val
return df
有没有等同于MS Excel填充句柄的Pandas函数?
如果选择了多个单元格,它会向下填充数据或扩展一系列。我的特定应用程序是用数据框中特定行的特定列中的设置值填充,不一定填充系列。
正如其他人评论的那样,pandas 没有 GUI,但 ffill 提供了您正在寻找的功能。您还可以将 ffill 与 groupby 结合使用以获得更强大的功能。例如:
>>> df
A B
0 12 1
1 NaN 1
2 4 2
3 NaN 2
>>> df.A = df.groupby('B').A.ffill()
A B
0 12 1
1 12 1
2 4 2
3 4 2
编辑:如果您没有 NaN,您可以随时在要填充的位置创建 NaN。例如:
>>> df
Out[8]:
A B
0 1 2
1 3 3
2 4 5
>>> df.replace(3, np.nan)
Out[9]:
A B
0 1.0 2.0
1 NaN NaN
2 4.0 5.0
这个简单的函数基本上可以满足我的要求。我觉得如果ffill能修改成这样填写就好了...
def fill_down(df, col, val, start, end = 0, interval = 1):
if not end:
end = len(df)
for i in range(start,end,interval):
df[col].iloc[i] += val
return df