如果列包含数据帧列,如何用数据帧列替换列表中的项

2024-10-01 15:37:54 发布

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

我有一个清单:

mylist=["one","two","three","slgrmff","signaff","huslness"]

以及数据帧:

    busy        quicksilver sign
0   huslness    qulzkslwx   slgrmff
1   NaN         NaN         signaff

我试图用数据框中的列名替换mylist if中的项,如果该列包含该项。你知道吗

我的预期输出是:["one","two","three","sign","sign","busy"]


Tags: 数据ifnanonethreetwosignquicksilver
2条回答

试试这个:

for (i,item) in enumerate(mylist):
    for col in df.columns:
        if item in df[col].tolist():
            mylist[i]=col

我敢肯定他们用的方法更像Python,但这确实管用!你知道吗

一种方法是使用字典。这可能比每次在数据帧中循环并与列表进行比较更有效。你知道吗

d = {}

for col in df:
    d.update(dict.fromkeys(df[col].dropna().unique(), col))

mylist=["one","two","three","slgrmff","signaff","huslness"]

res = [d.get(i, i) for i in mylist]

# ['one', 'two', 'three', 'sign', 'sign', 'busy']

相关问题 更多 >

    热门问题