quantity:
a b c
3 1 nan
3 2 8
7 5 9
4 8 nan
price
34
我有两个数据框,分别是数量和价格,我想将数量数据框的最后一行连接到价格上,其中c
不是nan
我写了这些查询,但是没有得到想要的输出:
price = pd.concat(price,quantity["a","b","c"].tail(1).isnotnull())
我想要的是:
price a b c
34 7 5 9
答案 0 :(得分:1)
我相信您需要删除缺失的值,并在最后一行添加-为一行DataFrame添加双[]
:
df=pd.concat([price.reset_index(drop=True),
quantity[["a","b","c"]].dropna(subset=['c']).iloc[[-1]].reset_index(drop=True)],
axis=1)
print (df)
price a b c
0 34 7 5 9.0
详细信息:
print (quantity[["a","b","c"]].dropna().iloc[[-1]])
a b c
2 7 5 9.0
答案 1 :(得分:1)
如果您的df是这些:
df = pd.DataFrame([[3,1,np.nan], [3,2,8], [7,5,9], [4,8,np.nan]], columns=['a','b','c'])
df2 = pd.DataFrame([34], columns=['price'])
您可以通过以下方式进行:
final_df = pd.concat([df.dropna(subset=['c']).tail(1).reset_index(drop=True), df2], axis=1)
输出:
a b c price
0 7 5 9.0 34
答案 2 :(得分:0)
我会过滤df
上的not null
,然后简单地添加价格:
new_df = df[df['c'].notnull()]
其中c是您的列名。
new_df['price'] = 32 # or the price from your df