在python中将数据帧与列表匹配时,如何克服缺少的值?

2024-09-29 19:26:47 发布

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

我有一个大数据框(称为df),其中包含一些位置值。这是一个简短的版本:

          locations          Value1  Value2  Value3 Value4
 0        s-Hertogenbosch    58        2       91     23
 1        Aachen             10        2       17     8
 2        Aalsmeer           50        50      50     0

此外,我有一个包含50个位置的列表(称为列表);其中一些位置显示在数据帧中,而另一些位置则不显示。对于“列表”中的每个位置,我想找到对应于该位置的值1。为此,我将“列表”和数据框的位置与以下代码匹配:

p=[]    
for y in range(50):
    p.append(df.loc[df['locations'] == List['Location'][y], 'Value1'].item())

为了简单起见,我首先创建一个向量p,它存储每个位置的值1。当列表中给定的位置也可以在数据帧中找到时,此代码起作用。然而如果在数据帧中找不到列表中给定的位置,则会出现错误。我想为这些情况假设一个值。有人知道怎么编码吗


Tags: 数据代码in版本df列表forvalue1
1条回答
网友
1楼 · 发布于 2024-09-29 19:26:47

试试这个(我做了一个简单的例子):

import pandas as pd


locations = ['s-Hertogenbosch', 'Aachen', 'Aalsmeer']
v1 = [58, 10, 50]
v2 = [2, 2, 50]
v3 = [91, 17, 50]
v4 = [23, 8, 0]
df = pd.DataFrame(locations, columns=['locations'])
df['Value1'] = v1
df['Value2'] = v2
df['Value3'] = v3
df['Value4'] = v4

list_with_locations = ['a', 'b', 'c', 'Aachen']

l = list(df[df['locations'].isin(list_with_locations)].Value1)

print(l)

相关问题 更多 >

    热门问题