python - 如果我没有从数据库中找到某些数据,如何添加信息?

标签 python python-2.7 pandas

我正在使用 pandas 包根据名称从某个数据库中过滤出我需要的信息。但我只是知道如何过滤掉它们,而不是向结果列表中添加额外的信息。

我给出了一个列表,我想根据它们检索信息:

import pandas

require_list = []
with open('require.csv') as fo:
    for line in fo:
        require_list.append(line.strip())

#Then I see,
id 
cat
elephant          
dog           # I have elephant in my list.

然后我开始通过 pandas 从数据库中读取数据:

data = pandas.read_csv("require_database.csv")

  id        kg    
0 squirrel  0.1
1 horse     80
2 cat       7
3 bee       0.03      
4 dog       12 
5 goldfish  0.08      # Unfortunately I do not have data for elephant.

然后我使用“isin”函数根据给定的标题检索数据...

data_list = data[data['id'].isin(require_list)]
print data_list

# I'd like to get something like below....
 id        kg
 cat       7
 elephant  null   # Add "null" behind the elephant..
 dog       12     # Order is the same as my given list.

我的问题是如何在我没有数据的动物后面添加“null”等信息?我的结果中的顺序应该与我的列表相同。有谁知道如何通过 pandas 实现这一目标?

最佳答案

我将从您的列表中创建一个 df,然后执行 left款式merge对于您的数据库 df ,这将在它们存在的地方添加值,并将 nan 放在它们不存在的地方:

In [52]:

animal_list=['cat','elephant','dog']
df = pd.DataFrame({'id':animal_list})
df
Out[52]:
         id
0       cat
1  elephant
2       dog

df1
Out[51]:
         id     kg
0  squirrel   0.10
1     horse  80.00
2       cat   7.00
3       bee   0.03
4       dog  12.00
5  goldfish   0.08
In [50]:

df.merge(df1, on='id', how='left')
Out[50]:
         id  kg
0       cat   7
1  elephant NaN
2       dog  12

关于python - 如果我没有从数据库中找到某些数据,如何添加信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28774310/

相关文章:

python - Pandas 按列中列表的长度排序

pandas - RDKit - 导出带有 mol 图像的 pandas 数据框

python - nltk : How to prevent stemming of proper nouns

python - 如何使用 Pandas 搜索和识别 csv 文件中的浮点值?

python - 返回 iter 中 lambda 的产量

python - 多处理组应用python

python - 计算 Pandas 中的工资天数

python - 使用模式作为字典键

Python OpenCV 视频格式浏览器播放

python - 使用 Climin 在 Theano 中实现逻辑回归