【发布时间】:2019-12-01 23:16:55
【问题描述】:
(这里是熊猫初学者)
假设有 2 个系列:a 和 b
以及以下代码:
c = a[b > 0]
如何访问 b 的先前值以获得类似的东西
c = a[b_from_previous_index > 0]
另外,pandas 如何处理索引为 0 的情况?
【问题讨论】:
(这里是熊猫初学者)
假设有 2 个系列:a 和 b
以及以下代码:
c = a[b > 0]
如何访问 b 的先前值以获得类似的东西
c = a[b_from_previous_index > 0]
另外,pandas 如何处理索引为 0 的情况?
【问题讨论】:
我相信这是 Syntax to select previous row in pandas after filtering 的一个有点隐藏的副本,但是为了后代:
a = pd.Series([-3,4,-1,-5,2,9,1])
print(a)
0 -3
1 4
2 -1
3 -5
4 2
5 9
6 1
dtype: int64
b = pd.Series(np.arange(7))
print(b)
0 0
1 1
2 2
3 3
4 4
5 5
6 6
dtype: int64
b[(a<0).shift(-1).fillna(False)]
1 1
2 2
dtype: int64
您可以向后使用shift 在比赛前获取系列一的索引。 0 索引由fillna 方法处理,您可以通过将其更改为.fillna(True)。
注意:您不能将此留空,因为 pandas 布尔数组不能包含 NaN(默认情况下用于填充这些空格)。
【讨论】:
c = a[1:]
将为您提供第二个值/位置或“1”以及后面的所有值
c = a[0]
将为您提供系列或列表中的第一个值/第一个位置
c = a[:x]
将为您提供列表/系列索引中该位置之前的所有值
c = a[x:x]
将根据您的列表/系列的索引为您提供一个范围内的值
这是否回答了您的问题?如果没有给我更多说明或您正在寻找的输出示例,我应该能够提供帮助
【讨论】: