gpt4 book ai didi

python - Pandas :根据与另一列名称部分匹配的列值创建新列

转载 作者:行者123 更新时间:2023-11-28 22:10:59 24 4
gpt4 key购买 nike

我正在尝试在 Pandas 中创建一个新列。我有一个现有的文本列,我希望这个新列包含另一列中包含的值,其中行值与列名部分匹配。它类似于这个线程,但在我的例子中,我只会有部分匹配:

Python: pandas: match row value to column name/ key's value

以我的表格为例

Field   UKA_rf4 UKB UKDdsdf 
UKA 1 4 54
UKB 2 5 7787
UKD 97 54 765656

我希望它看起来像:

Field   UKA_rf4 UKB UKDdsdf      Value
UKA 1 4 54 1
UKB 2 5 7787 5
UKD 97 54 765656 765656

第一行结果为 1,因为“UKA”包含在列名称“UKA_rf4”中

第二行与列名完全匹配,第三列是部分匹配。

有什么建议吗?

最佳答案

你可以使用列表理解

df = pd.DataFrame({'Fields':['UKA','UKB','UKD'],'UKA_rf4':[1,2,97],'UKB':[4,5,54],'UKDdsdf':[54,7787,765656]})

df = df.set_index('Fields')
df['Values'] = [df[j][index] for index,i in enumerate(df.index) for j in df.columns if i in j]

print(df)

UKA_rf4 UKB UKDdsdf Values
Fields
UKA 1 4 54 1
UKB 2 5 7787 5
UKD 97 54 765656 765656

关于python - Pandas :根据与另一列名称部分匹配的列值创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56273359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com