2024-03-29 05:12:28 发布
网友
我有以下格式的列表:
l = [[1,2,3,4], [5,6], [7], [8,9,10]]
以及具有以下列的数据帧
我的目标是循环遍历dataframe中value列中的每一行,以找到值所在的列表。我想用列表中的第一个值创建一个新列。结果会像这样
任何帮助都将不胜感激。谢谢
试试explode,然后map
explode
map
s = pd.Series(l).explode() s.index = s.groupby(level=0).transform('first') df['List_val'] = df['Value'].map(dict(zip(s,s.index))) df Out[36]: Value List_val 0 1 1 1 3 1 2 5 5 3 9 8
尝试:
l = [[1, 2, 3, 4], [5, 6], [7], [8, 9, 10]] df["List_Val"] = df["Value"].apply( lambda x: next((subl[0] for subl in l if x in subl), np.nan) ) print(df)
印刷品:
Value List_Val 0 1 1 1 3 1 2 5 5 3 9 8
让我们使用字典理解和map:
df['list_val'] = df['Value'].map({v:i[0] for i in l for v in i})
输出:
Value list_val 0 1 1 1 3 1 2 5 5 3 9 8
试试
explode
,然后map
尝试:
印刷品:
让我们使用字典理解和
map
:输出:
相关问题 更多 >
编程相关推荐