【发布时间】:2015-12-26 13:14:50
【问题描述】:
我想要一种简单的方法来访问相对于 Pandas DataFrame 中给定索引的索引。请参阅下面的代码,其中类似于numpy 数组:
import numpy as np
import pandas as pd
# let's make a simple 2d matrix like array
na_a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
print na_a
print na_a[1][2]
print na_a[1+1][2] # here I want to print the next value in the same column so I iterate the row by 1
# now let's put this array into a pandas dataframe
df_a = pd.DataFrame(na_a,index = ['1','2','3','4'], columns = ['A','B','C','D'])
print df_a
print df_a['C']['2']
# now how do I easily iterate the row by 1 to print the next value in the same column?
这是输出:
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]
7
11
A B C D
1 1 2 3 4
2 5 6 7 8
3 9 10 11 12
4 13 14 15 16
7
这对于一般的相对索引应该是可能的(不仅仅是在一个方向上 +1)。
【问题讨论】:
-
Pandas 背后的一个想法是能够轻松地对数据执行批量操作并避免迭代。您能否详细说明您要在更高级别上实现的目标?
-
为什么不直接使用基于整数的索引,即
iloc[2, 2]? -
在最高级别,这是一个四分五裂的游戏(连续 5 个)。我决定将电路板放在 DataFrame 中(主要是因为我是 python 新手)。我的 AI 对手现在可以通过寻找连续的 X 链来发现潜在威胁。假设一连串的三个 X 在 F5、F6、F7 处。我的约定是链的地址为 F7,长度为 3。如果 AI 想要放一个 O 来阻止链,它必须转到地址 F7 并将数字索引迭代 1 以到达 F8。跨度>
-
很高兴听到我这样做很愚蠢。
标签: python pandas indexing dataframe