如果我没有从我的数据库中找到某些数据,我该如何添加信息?
How could I add information if I did not find certain data from my database?
我正在使用 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,然后对你的数据库 df 执行 left style merge 这将在它们存在的地方添加值,并将 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
我正在使用 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,然后对你的数据库 df 执行 left style merge 这将在它们存在的地方添加值,并将 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