我有一系列的键,希望通过从其他数据帧中选择值来创建一个数据帧
例如
data_df = pandas.DataFrame({'key' : ['a','b','c','d','e','f'],
'value1': [1.1,2,3,4,5,6],
'value2': [7.1,8,9,10,11,12]
})
keys = pandas.Series(['a','b','a','c','e','f','a','b','c'])
data_df
# key value1 value2
#0 a 1.1 7.1
#1 b 2.0 8.0
#2 c 3.0 9.0
#3 d 4.0 10.0
#4 e 5.0 11.0
#5 f 6.0 12.0
我想得到这样的结果
result
key value1 value2
0 a 1.1 7.1
1 b 2.0 8.0
2 a 1.1 7.1
3 c 3.0 9.0
4 e 5.0 11.0
5 f 6.0 12.0
6 a 1.1 7.1
7 b 2.0 8.0
8 c 3.0 9.0
我成功做到这一点的一个方法是使用
def append_to_series(key):
new_series=data_df[data_df['key']==key].iloc[0]
return new_series
pd.DataFrame(key_df.apply(append_to_series))
但是,这个功能非常慢而且不干净。有没有更有效的方法
按} 或^{} :
key
列创建索引,然后使用^{注意:原始
key
列的必需唯一值或:
将序列转换为列名为
key
的dataframe
使用^{} 合并
value1,value2
相关问题 更多 >
编程相关推荐