我的数据框:
dfd = pd.DataFrame({'A': ['Apple','Apple', 'Apple','Orange','Orange','Orange','Pears','Pears'],
'B': [1,2,9,6,4,3,2,1]
})
A B
0 Apple 1
1 Apple 2
2 Apple 9
3 Orange 6
4 Orange 4
5 Orange 3
6 Pears 2
7 Pears 1
期望结果:
A new_B old_B
0 Apple 1 1
1 Apple 1 2
2 Apple 1 9
3 Orange 3 6
4 Orange 3 4
5 Orange 3 3
6 Pears 1 2
7 Pears 1 1
期望的数据框:new_values包含该组中的最小值。对于苹果,列B的最小值为1,因此所有苹果的新值都为1,同样地,橙子的列B的最小值为3,被替换为new_b列。
第二个期望的输出: 一旦达到上述期望的输出,我必须为每个组创建SQL语句并写入文件: 基本上,迭代每一行并编写SQL查询:
sql_query= "update test_tbl "\
"set id = {0}"\
"where id = {1}"\
"and A = '{2}' ".format(new_b,old_b,A)
print(sql_query, file=open("output.sql", "a"))
df.groupby('A').apply(min)
。 - ssm