[英]remove elements from list based on index in pandas Dataframe
如何根據熊貓數據框中的索引范圍從列表中刪除元素。
假設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:
values size
0 [3,4,5,6,7] 2
1 [4] 3
2 [4,3] 5
將列表理解與索引一起使用:
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
使用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)
輸出:
size values
0 2 [3, 4, 5, 6, 7]
1 3 [4]
2 5 [4, 3]
在基本的Python中使用map
,您可以
dat['values'] = pd.Series(map(lambda x, y : x[y:], dat['values'], dat['size']))
哪個返回
dat
Out[34]:
values size
0 [3, 4, 5, 6, 7] 2
1 [4] 3
2 [4, 3] 5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.