Python:将NaN更改为从其他数据框中获取的特定值

时间:2020-07-12 08:41:43

标签: python pandas dataframe

我想为数据框分配一个变量,但该值仅分配给第一行,其余为Nan。我只能找到有关如何将NaN值设为零的文档。

我有以下数据:

import pandas as pd

data = {'One': ['a value', 'another value', 'okay', 'yes'],'Two': ['var', 'var2', 'alright', 'pool']}

df = pd.DataFrame(data, columns=['One', 'Two'])

我还有以下词典列表:

d = [{'year': '1997', 'name': 'John', 'another_dict': 'dict'}]

我想从词典列表中分配year。我对其他任何一本字典都不感兴趣,只对第一年感兴趣。要将其分配给我的df,我这样做:

将词典列表转换为df

dr = pd.DataFrame.from_dict(d, orient='columns')

# strip the year column from the data

acad_year = dr["year"]

# join to the original data

new_data = df.join(acad_year)

print(new_data)

问题在于1997仅在第一行中分配,此后我得到NaN值。有谁知道我该怎么做,以使“年份”列中的每个值都是“ 1997”?我意识到这太拖延了,因此,如果通常可以使用更好的方式为数据框分配“年”,请告诉我!

2 个答案:

答案 0 :(得分:1)

假设您必须根据这两个字典来工作,我只需要使用当前方法来创建两个数据框,然后使用

aws_subnet.public.*.id

答案 1 :(得分:1)

您可以将标量分配给列

df['year'] = 1997

从您的字典中

df['year'] = d[0]['year']

从您的数据框中

df['year'] = dr['year'][0]