gpt4 book ai didi

python - 从一系列键和一个键 :value dataframe 构造数据帧

转载 作者:行者123 更新时间:2023-12-01 00:40:16 25 4
gpt4 key购买 nike

我有一系列 pandas 键,并希望通过从其他数据帧中选择值来创建一个数据帧。

例如。

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))

但是,这个函数非常慢而且不干净。有没有办法更有效地做到这一点?

最佳答案

将系列转换为dataframe,列名称为key

使用pd.merge()合并value1,value2

keys = pd.DataFrame(['a','b','a','c','e','f','a','b','c'],columns=['key'])
res = pd.merge(keys,data_df,on=['key'],how='left')

print(res)
   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

关于python - 从一系列键和一个键 :value dataframe 构造数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57407842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com