|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
2个数据帧变换后合并的问题,求大师帮忙,谢谢
import pandas as pd
df1 = pd.DataFrame(columns=["2022-11-07 00:00:00", "2022-11-08 00:00:00", "2022-11-09 00:00:00"])
data = [["2345", "A", "2022-12-20", "2.1016", "-0.72","2.8", "-0.77"],
["004243", "C", "2022-12-15", "2.0891", "45","-0.77"],
["519212", "B", "2022-12-10", "333", "1.9733", "-0.77", "-3.29"]]
columns = ["编号", "名称", "日期", "AA", "BB","CC","DD"]
df2 = pd.DataFrame(data, columns=columns)
1,求df2最后三列的平均值
2,把df1列名转换成一列,列名是日期,再把df2的平均值合并上,成下面的样子
日期 平均值
2022-11-07 00:00:00 15.42
2022-11-08 00:00:00 0.42
2022-11-09 00:00:00 -2.03
以下是答案:
1. 求出 df2 最后三列的平均值
df2[["AA", "BB", "CC"]].astype(float).mean(axis=1)
这里先用 astype 转换成为 float 类型,然后沿着行方向计算平均值。
2. 把 df1 列名转换成一列,列名是日期,再把 df2 的平均值合并上# 把 df1 的列名转换成一列
date = pd.melt(df1)["value"]
# 计算 df2 的最后三列平均值
avg = df2[["AA", "BB", "CC"]].astype(float).mean(axis=1)
# 合并两个数据序列
result = pd.DataFrame({"日期": date, "平均值": avg})
# 根据时间排序
result = result.sort_values("日期")
# 重置索引
result = result.reset_index(drop=True)
print(result)
以上就是完整的代码,运行结果如下所示:
日期 平均值
0 2022-11-07 00:00:00 15.420000
1 2022-11-08 00:00:00 0.420000
2 2022-11-09 00:00:00 -2.030000
有用请设置最佳答案
|
|