根据pandas Datafram中的索引从列表中删除元素

2024-04-19 04:50:00 发布

您现在位置:Python中文网/ 问答频道 /正文

如何根据pandas数据帧中的索引范围从列表中删除元素。在

假设DataFrame是

df:

    values           size
0  [1,2,3,4,5,6,7]    2     #delete first 2 elements from list
1  [1,2,3,4]          3     #delete first 3 elements from list
2  [9,8,7,6,5,4,3]    5     #delete first 5 elements from list

预期输出为

^{pr2}$

Tags: 数据from元素dataframepandasdf列表size
3条回答

使用df.apply

import pandas as pd
df = pd.DataFrame({"values": [[1,2,3,4,5,6,7], [1,2,3,4],  [9,8,7,6,5,4,3]], "size": [2, 3, 5]})
df["values"] = df.apply(lambda x: x["values"][x['size']:], axis=1)
print(df)

输出:

^{pr2}$

将列表理解与索引结合使用:

df['values'] = [i[j:] for i, j in zip(df['values'], df['size'])]
print (df)
            values  size
0  [3, 4, 5, 6, 7]     2
1              [4]     3
2           [4, 3]     5

在基本Python中使用map,您可以

dat['values'] = pd.Series(map(lambda x, y : x[y:], dat['values'], dat['size']))

它回来了

^{pr2}$

相关问题 更多 >