簡體   English   中英

根據熊貓數據框中的索引從列表中刪除元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM