python - 使用另一个 DataFrame 创建或修改 DataFrame

标签 python pandas dataframe pivot reshape

我目前有一个 Pandas DataFrame,如下所示:

   DATESTAMP   price                name   pct_chg
0  2006-01-02  62.987301            a      0.000000
1  2006-01-03  61.990700            a     -0.015822
2  2006-01-04  62.987301            a      0.016077
3  2006-01-05  62.987301            a      0.000000
4  2006-01-06  61.990700            a     -0.015822
6  2006-01-04  100.1                b      0.000000
7  2006-01-05  100.5                b     -0.015822
8  2006-01-06  100.7                b      0.016077
9  2006-01-07  100.8                b      0.016090

问题是不同的项目(用唯一的列名称指定)具有不同的起始时间以及不同的事件时间

  • 以上项目 a 开始于 2016-01-02 并结束于 2016-01-06
  • 以上项目 b 开始于 2006-01-04 并结束于 2006-01-07

我想在新的 DataFrame 中总结列 pct_chg,以 DATESTAMP 作为索引,以 name 为列。我还希望新的 DataFrame 具有索引,使其以“最旧的”现有日期记录(在本例中为 2006-01-02)开始,并以“最新”结束“(在本例中为 2006-01-07)。

结果看起来像

            a          b
2006-01-02  0.000000   NaN
2006-01-03  -0.015822  NaN
2006-01-04  0.016077   0.000000
2006-01-05  0.000000   -0.015822
2006-01-06  -0.015822  0.016077
2006-01-07  NaN        0.016090

最佳答案

您可以使用set_indexunstack :

print (df.set_index(['DATESTAMP','name'])['pct_chg'].unstack())
name               a         b
DATESTAMP                     
2006-01-02  0.000000       NaN
2006-01-03 -0.015822       NaN
2006-01-04  0.016077  0.000000
2006-01-05  0.000000 -0.015822
2006-01-06 -0.015822  0.016077
2006-01-07       NaN  0.016090

另一个解决方案 pivot :

print (df.pivot(index='DATESTAMP', columns='name', values='pct_chg'))
name               a         b
DATESTAMP                     
2006-01-02  0.000000       NaN
2006-01-03 -0.015822       NaN
2006-01-04  0.016077  0.000000
2006-01-05  0.000000 -0.015822
2006-01-06 -0.015822  0.016077
2006-01-07       NaN  0.016090

关于python - 使用另一个 DataFrame 创建或修改 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39777018/

相关文章:

python - 如何在 Processing 中编码固定数量的半随机间隔且仍然适合固定大小图像的行?

python - 在不修改sys.path或第三方软件包的情况下,在Python软件包中导入供应商依赖性

python - 按单列中的多个年份进行分组并绘制堆叠结果

python - 如何从 Python 中的 pandas 数据框中获取 networkx 图的分支作为列表?

python - 在 Python 中给定二进制标志设置计数变量( Pandas 数据框)

python - 在 Python 中使用 Keras 的神经网络中的特征重要性图

python - PyQt5 QWebEngineView 不显示任何内容

python - 使用 astype() 将字符串转换为数字

python-3.x - 绘制图表,数据显示相应的颜色

python - 如何将分隔值转换为one-hot编码列?