代码在一定程度上简洁,会便于将来维护或者阅读,一眼扫过曾经自己写的代码便知其意。

好的代码是简洁优雅的,当然,我们没有必要追求过度简洁,会适得其反。在编写代码使用库的时候,可能并不知道某个组合连续的操作,实际上只需要一步就可以,在没有 AI 的时代,程序员都是通过直觉感觉这个地方有简洁的写法,然后去 Google 或者查找官方文档,再改写代码,现如今,我们可以通过 AI 快速的修改代码。

简写库 pandas 的连续操作

import pandas as pd

data = {
    '销售人员': ['小李', '小李', '小李', '小张', '小张', '小王', '小王', '小王'],
    '产品类型': ['手机', '电脑', '电脑', '手机', '电视', '电视', '手机', '手机'],
    '销售额': [5000, 8000, 6000, 4500, 7000, 6500, 7200, 5000]
}

df = pd.DataFrame(data)
df = df.groupby('销售人员').agg({'销售额': ['sum', 'mean']}).reset_index().rename(columns={"sum": "销售额_汇总", "mean": "销售额_平均"})
print(df.head())

以上代码为汇总每个销售人员销售额的总数和平均数,同时,将汇总完成之后的列重命名。

先尝试使用 AI 简洁代码:

AI Prompt:

df = df.groupby('销售人员').agg({'销售额': ['sum', 'mean']}).resetindex().rename(columns={"sum": "销售额_汇总", "mean": "销售额_平均"})

以上是 Python pandas 的一个汇总操作,pandas 是否有更简单的写法来完成汇总、重命名字段的操作?如果有则给出简单写法。

ChatGPT 给出了正确答案:

df = df.groupby('销售人员').agg(
    销售额_汇总=('销售额', 'sum'),
    销售额_平均=('销售额', 'mean')
).reset_index()

让我们稍微换一下说法:

AI Prompt:

df = df.groupby('销售人员').agg({'销售额': ['sum', 'mean']}).resetindex().rename(columns={"sum": "销售额_汇总", "mean": "销售额_平均"})

请精简以上写法。

ChatGPT 给出了不太“精简”的答案:

df = df.groupby('销售人员')['销售额'].agg(['sum', 'mean']).reset_index().rename(columns={"sum": "销售额_汇总", "mean": "销售额_平均"})

我们多尝试几次,发现还是有概率会输出正确的精简结果,但是没有第一种问法得到的结果稳定。

总结

  1. AI 是可以识别你所使用的编程语言的,不过我们也可以给出具体语言和库的提示词,例如 Python、pandas 等,可以先不写这些提示词进行尝试

    df = df.groupby('销售人员').agg({'销售额': ['sum', 'mean']}).resetindex().rename(columns={"sum": "销售额_汇总", "mean": "销售额_平均"})
    
    是否有更简单的写法来完成汇总、重命名字段的操作?如果有则给出简单写法。
    
  2. 要给出你的精简目标代码的含义总结,例如“是否有更简单的写法来完成汇总、重命名字段的操作