根据筛选器添加新列并从另一个DataFrame中添加值:
我有两个DataFrames,如下所示:
Name time
net 8am
stat 8am
net 8am
net 8am
sig 8am
net 8am措施_df:-
tcp_time. tcp_wait
12 33
22 11
23 32
34 11现在,我想将measures_df中的列添加到infra_df中,用于任何名称都是net的行和其他任何地方的NAN:-
结果_df:-
Name time tcp_time tcp_wait
net 8am 12 33
stat 8am NAN NAN
net 8am 22 11
net 8am 23 32
sig 8am NAN NAN
net 8am 34 11发布于 2021-12-06 08:57:28
如果measures_df的长度与infra_df中的net值数目相同,则使用:
m = infra_df['Name'].eq('net')
df = pd.concat([infra_df, measures_df.set_index(m.index[m])], axis=1)
print (df)
Name time tcp_time. tcp_wait
0 net 8am 12.0 33.0
1 stat 8am NaN NaN
2 net 8am 22.0 11.0
3 net 8am 23.0 32.0
4 sig 8am NaN NaN
5 net 8am 34.0 11.0发布于 2021-12-06 08:59:35
以net为名称的示例索引:
idx = intra_df.loc[intra_df["Name"].eq("net")].index我们使用修改后的索引与measures_df连接:
intra_df = pd.concat([intra_df, measures_df.iloc[:len(idx),:].set_index(idx)], axis=1)我还添加了iloc,以防measures_df中的行比intra_df中的net多。
如果需要的话,.dropna()将删除所有nan行。
https://stackoverflow.com/questions/70242786
复制相似问题