【发布时间】:2021-01-09 11:41:04
【问题描述】:
我有一个这样的 df:
df = pd.DataFrame(
[
['A', 1],
['A', 1],
['A', 1],
['B', 2],
['B', 0],
['A', 0],
['A', 1],
['B', 1],
['B', 0]
], columns = ['key', 'val'])
df
打印:
key val
0 A 1
1 A 1
2 A 1
3 B 2
4 B 0
5 A 0
6 A 1
7 B 1
8 B 0
我想填充 val 列中 2 之后的行(在示例中 val 列中从第 3 行到第 8 行的所有值都替换为 nan)。
我试过了:
df['val'] = np.where(df['val'].shift(-1) == 2, np.nan, df['val'])
并像这样遍历行:
for row in df.iterrows():
df['val'] = np.where(df['val'].shift(-1) == 2, np.nan, df['val'])
但无法让它向前填充 nan。
【问题讨论】:
-
如何编写熊猫问题的面包和黄油示例,做得好。
标签: python-3.x pandas numpy