2024-04-19 04:50:00 发布
网友
如何根据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
预期输出为
使用df.apply
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)
输出:
将列表理解与索引结合使用:
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,您可以
map
dat['values'] = pd.Series(map(lambda x, y : x[y:], dat['values'], dat['size']))
它回来了
使用
df.apply
输出:
^{pr2}$将列表理解与索引结合使用:
在基本Python中使用
map
,您可以它回来了
^{pr2}$相关问题 更多 >
编程相关推荐