python pandas dataframe union 合并列表到索引
python pandas dataframe union merge list into index
我有一个值列表,我想保证所有值都存在于数据框的索引中。
我已经使用以下方法实现了这一点,但我想知道我可以用更简单的方式做到这一点吗?我尝试了各种 ~ ... .isin
构造,但未能得到我想要的
谢谢
#df1 is my data frame
df1=pd.DataFrame({'i':[1, 3, 5, 7],
'a':[2, 4, 6, 8]})
df1.set_index(['i'], inplace=True)
df1
# l is the list containing index values
# i make this a data frame with an index but no columns so i can use merge
l=[3, 4, 5]
df=pd.DataFrame(l)
df.set_index([0], inplace=True)
df.index.names=['i']
df
使用合并添加任何缺失的索引值
df1.merge(df, how='outer', on='i', sort=True)
将 reindex
与 pd.Index.union
一起使用(假设您没有 DataFrame 索引的任何重复值或 l
中的重复值)
import pandas as pd
df1 = pd.DataFrame({'i':[1, 3, 5, 7], 'a':[2, 4, 6, 8]}).set_index('i')
l = [3, 4, 5]
df1 = df1.reindex(df1.index.union(l))
# a
#i
#1 2.0
#3 4.0
#4 NaN
#5 6.0
#7 8.0
我有一个值列表,我想保证所有值都存在于数据框的索引中。
我已经使用以下方法实现了这一点,但我想知道我可以用更简单的方式做到这一点吗?我尝试了各种 ~ ... .isin
构造,但未能得到我想要的
谢谢
#df1 is my data frame
df1=pd.DataFrame({'i':[1, 3, 5, 7],
'a':[2, 4, 6, 8]})
df1.set_index(['i'], inplace=True)
df1
# l is the list containing index values
# i make this a data frame with an index but no columns so i can use merge
l=[3, 4, 5]
df=pd.DataFrame(l)
df.set_index([0], inplace=True)
df.index.names=['i']
df
使用合并添加任何缺失的索引值
df1.merge(df, how='outer', on='i', sort=True)
将 reindex
与 pd.Index.union
一起使用(假设您没有 DataFrame 索引的任何重复值或 l
中的重复值)
import pandas as pd
df1 = pd.DataFrame({'i':[1, 3, 5, 7], 'a':[2, 4, 6, 8]}).set_index('i')
l = [3, 4, 5]
df1 = df1.reindex(df1.index.union(l))
# a
#i
#1 2.0
#3 4.0
#4 NaN
#5 6.0
#7 8.0