【问题标题】:Convert pandas Dataframe to multiple numpy array将 pandas Dataframe 转换为多个 numpy 数组
【发布时间】:2020-08-20 14:20:27
【问题描述】:

我想将我的列转换为多个数组,这样每一行都有来自同一日期的值

My data:

Date        Value
2006-12-11  816.2
2006-12-11  816.2
2006-12-11  816.2
2006-12-12  848.2
2006-12-12  849.0
2006-12-13  885.6
2006-12-13  887.0
2006-12-13  885.2
2006-12-13  882.0
2006-12-13  885.0

预期输出:

[[816.2, 816.2, 816.2]
[848.2, 849.0]
[885.6, 887.0, 885.2, 882.0, 885.0]] 

【问题讨论】:

    标签: pandas numpy pandas-groupby numpy-ndarray


    【解决方案1】:

    您可以将groupbynumpy.array 一起使用:

    import numpy as np:
    
    df.Value.groupby(df.Date).apply(np.array).values
    

    例子:

    df = pd.DataFrame({
        "Date": ['2006-12-11', '2006-12-11', '2006-12-11', '2006-12-12', '2006-12-12'], 
        'Value': [816.2, 816.2, 816.2, 848.2, 849.0]})
    df.Value.groupby(df.Date).apply(np.array).values
    array([array([816.2, 816.2, 816.2]), array([848.2, 849. ])], dtype=object)
    

    【讨论】:

      【解决方案2】:

      您可以将值转换为列表:

      df.groupby(by=df.Date).agg(lambda x: x.tolist()).values
      

      【讨论】:

        猜你喜欢
        • 2019-08-04
        • 2020-02-10
        • 1970-01-01
        • 1970-01-01
        • 2018-12-27
        • 2020-07-12
        • 2021-08-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多