我有一个数据框。在列A
中,列B
中有一个整数列表 - 一个整数。我想选择列A
列表的第n个值,其中n是列B
中的数字。因此,如果在列A
中有[1,5,6,3,4]和列B
:2,我想得到' 6'。
我试过了:
result = [y[x] for y in df['A'] for x in df['B']
但它不起作用。请帮忙。
答案 0 :(得分:2)
你可以去申请即
df = pd.DataFrame({'A':[[1,2,3,4,5],[1,2,3,4]],'B':[1,2]})
A B
0 [1, 2, 3, 4, 5] 1
1 [1, 2, 3, 4] 2
# df.apply(lambda x : np.array(x['A'])[x['B']],1)
# You dont need np.array here, use it when the column B is also a list.
df.apply(lambda x : x['A'][x['B']],1) # Thanks @Zero
0 2
1 3
dtype: int64
答案 1 :(得分:2)
将string = bytes(string, encoding= 'utf-8')
与zip
:
list comprehension