通过带有日期时间时间戳的熊猫数据帧进行索引

问题描述 投票:0回答:1
   >>> df1
                    AAPL       GOOG 

    Date                                                      
    2016-03-01  0.013422  -0.321900
    2016-03-02 -0.012341  -0.000800 
    2016-03-03 -0.000772   0.055500
    2016-03-07 -0.413103  -0.009555

   >>> df2
                        NFLX         FB 
        Date                                                      
        2016-03-01  0.013422  -0.321900
        2016-03-02 -0.012341  -0.000800 
        2016-03-03 -0.000772   0.055500
        2016-03-07 -0.413103  -0.009555

我希望能够使用时间戳编制索引。但这给了我一个错误。例如,如果我想做:

df1['2016-03-01'] 

这有效并返回df1的第一行。但是如果我这样做:

df1[df2.index[0]]

这不起作用,返回并出错。我正在编码一些迭代日期的内容,而我正努力寻找解决方案。请帮助

pandas finance
1个回答
0
投票

使您的dfs

df1 = pd.DataFrame({"Date": ["2016-03-01","2016-03-02","2016-03-03","2016-03-07"],
                   "AAPL": [0.013422,-0.012341,-0.000772,-0.413103],
                   "GOOG": [-0.321900,-0.000800,0.055500,-0.009555]})

df2 = pd.DataFrame({"Date": ["2016-03-18"],
                    "NFLX": [0.23525],
                    "FB": [-0.28942]})

# set date to datetime
df1["Date"],df2["Date"] = pd.to_datetime(df1["Date"]),pd.to_datetime(df2["Date"])

# set Date as index
df1,df2 = df1.set_index("Date"),df2.set_index("Date")

# output1
>>> df1
                AAPL       GOOG 

Date                                                      
2016-03-01  0.013422  -0.321900
2016-03-02 -0.012341  -0.000800 
2016-03-03 -0.000772   0.055500
2016-03-07 -0.413103  -0.009555

# output2
>>> df2
                NFLX       FB 

Date        
2016-03-01  0.235250    -0.289420

按索引将行从df2添加到df1

for i,j in enumerate(df1.index):
    df2 = df2.append(df1.iloc[[i]],sort=True)

>>> df2
             AAPL       FB      GOOG      NFLX
Date                
2016-03-18  NaN     -0.28942    NaN     0.23525
2016-03-01  0.013422    NaN     -0.321900   NaN
2016-03-02  -0.012341   NaN     -0.000800   NaN
2016-03-03  -0.000772   NaN     0.055500    NaN
2016-03-07  -0.413103   NaN     -0.009555   NaN
© www.soinside.com 2019 - 2024. All rights reserved.