需要循环遍历pandas系列以查找变量索引

时间:2017-05-11 17:32:47

标签: pandas

我有一个数据框和一个列表。我想迭代列表中的元素并在数据帧中找到它们的位置,然后将其存储到新的数据帧

my_list = ['1','2','3','4','5']
df1 = pd.DataFrame(my_list, columns=['Num'])

dataframe: df1

            Num
     0      1       
     1      2       
     2      3
     3      4
     4      5

dataframe: df2

        0        1      2       3         4
0       9        12     8       6         7
1       11       1      4       10        13
2       5        14     2       0         3

我尝试过与此类似的东西但是没有工作

for x in my_list:
    i,j= np.array(np.where(df==x)).tolist()
    df2['X'] = df.append(i)
    df2['Y'] = df.append(j)

所以寻找像这样的结果

数据框: df1 已更新

            Num     X       Y
     0      1       1       1
     1      2       2       2
     2      3       2       4
     3      4       1       2
     4      5       2       0

任何提示或想法都将受到赞赏

1 个答案:

答案 0 :(得分:0)

为什么不将df2设为平面数据帧,而不是试图在df2中找到值。

df2 = pd.melt(df2)
df2.reset_index(inplace=True)
df2.columns = ['X', 'Y', 'Num']

所以现在你的df2看起来像这样:

Index   X   Y   Num
0       0   0   9
1       1   0   11
2       2   0   5
3       3   1   12
4       4   1   1
5       5   1   14

您当然可以按Num排序,如果您只想要列表中的值,则可以进一步过滤df2:

df2 = df2[df2.Num.isin(my_list)]