Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何以与列中相同的方式在索引中使用日期?_Python_Pandas - Fatal编程技术网

Python 如何以与列中相同的方式在索引中使用日期?

Python 如何以与列中相同的方式在索引中使用日期?,python,pandas,Python,Pandas,我正试着从中找出一个很好的答案。我使用的代码是: pd.concat((testdf, pd.get_dummies(testdf.index.weekday)), axis=1) testdf看起来像: United Kingdom Time (CET) 2020-02-15 1739771 2020-02-16 1649750 2020-02-17 1887394 2020-02-18

我正试着从中找出一个很好的答案。我使用的代码是:

pd.concat((testdf, pd.get_dummies(testdf.index.weekday)), axis=1)
testdf看起来像:

            United Kingdom
Time (CET)                
2020-02-15         1739771
2020-02-16         1649750
2020-02-17         1887394
2020-02-18         1922006
2020-02-19         1957194
2020-02-20         1878259
2020-02-21         1890076
2020-02-22         1677928
2020-02-23         1688218
2020-02-24         1948947
   0  1  2  3  4  5  6
0  0  0  0  0  0  1  0
1  0  0  0  0  0  0  1
2  1  0  0  0  0  0  0
3  0  1  0  0  0  0  0
4  0  0  1  0  0  0  0
5  0  0  0  1  0  0  0
6  0  0  0  0  1  0  0
7  0  0  0  0  0  1  0
8  0  0  0  0  0  0  1
9  1  0  0  0  0  0  0
    United Kingdom  0   1   2   3   4   5   6
1970-01-01 00:00:00.000000000   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000001   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000002   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000003   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000004   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000005   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000006   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000007   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000008   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000009   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-15 00:00:00.000000000   1739771.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-16 00:00:00.000000000   1649750.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-17 00:00:00.000000000   1887394.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-18 00:00:00.000000000   1922006.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-19 00:00:00.000000000   1957194.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-20 00:00:00.000000000   1878259.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-21 00:00:00.000000000   1890076.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-22 00:00:00.000000000   1677928.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-23 00:00:00.000000000   1688218.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-24 00:00:00.000000000   1948947.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
和pd.get_假人(testdf.index.weekday)看起来像:

            United Kingdom
Time (CET)                
2020-02-15         1739771
2020-02-16         1649750
2020-02-17         1887394
2020-02-18         1922006
2020-02-19         1957194
2020-02-20         1878259
2020-02-21         1890076
2020-02-22         1677928
2020-02-23         1688218
2020-02-24         1948947
   0  1  2  3  4  5  6
0  0  0  0  0  0  1  0
1  0  0  0  0  0  0  1
2  1  0  0  0  0  0  0
3  0  1  0  0  0  0  0
4  0  0  1  0  0  0  0
5  0  0  0  1  0  0  0
6  0  0  0  0  1  0  0
7  0  0  0  0  0  1  0
8  0  0  0  0  0  0  1
9  1  0  0  0  0  0  0
    United Kingdom  0   1   2   3   4   5   6
1970-01-01 00:00:00.000000000   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000001   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000002   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000003   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000004   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000005   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000006   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000007   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000008   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000009   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-15 00:00:00.000000000   1739771.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-16 00:00:00.000000000   1649750.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-17 00:00:00.000000000   1887394.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-18 00:00:00.000000000   1922006.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-19 00:00:00.000000000   1957194.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-20 00:00:00.000000000   1878259.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-21 00:00:00.000000000   1890076.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-22 00:00:00.000000000   1677928.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-23 00:00:00.000000000   1688218.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-24 00:00:00.000000000   1948947.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
但结果看起来是:

            United Kingdom
Time (CET)                
2020-02-15         1739771
2020-02-16         1649750
2020-02-17         1887394
2020-02-18         1922006
2020-02-19         1957194
2020-02-20         1878259
2020-02-21         1890076
2020-02-22         1677928
2020-02-23         1688218
2020-02-24         1948947
   0  1  2  3  4  5  6
0  0  0  0  0  0  1  0
1  0  0  0  0  0  0  1
2  1  0  0  0  0  0  0
3  0  1  0  0  0  0  0
4  0  0  1  0  0  0  0
5  0  0  0  1  0  0  0
6  0  0  0  0  1  0  0
7  0  0  0  0  0  1  0
8  0  0  0  0  0  0  1
9  1  0  0  0  0  0  0
    United Kingdom  0   1   2   3   4   5   6
1970-01-01 00:00:00.000000000   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000001   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000002   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000003   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000004   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000005   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000006   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000007   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000008   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
1970-01-01 00:00:00.000000009   NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-15 00:00:00.000000000   1739771.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-16 00:00:00.000000000   1649750.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-17 00:00:00.000000000   1887394.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-18 00:00:00.000000000   1922006.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-19 00:00:00.000000000   1957194.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-20 00:00:00.000000000   1878259.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-21 00:00:00.000000000   1890076.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-22 00:00:00.000000000   1677928.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-23 00:00:00.000000000   1688218.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN
2020-02-24 00:00:00.000000000   1948947.0   NaN     NaN     NaN     NaN     NaN     NaN     NaN

我想这是因为当我使用
set\u index
创建索引时,类型发生了变化。我如何才能让它工作?

reset_index()在这里到底做了什么?在您在中指出的示例中,“date”不是一个索引,而是一个普通列。在数据集中,df.reset_index()将索引转换为普通列。谢谢。你知道如何让
day\u name()
也能工作吗?testdf.index.day_name()无效。如周一、周二、周三等?是。链接答案中的答案具有
pd.concat((df,pd.get_dummies(df['date'].dt.day_name()),axis=1)
这为列提供了正确的名称。
import pandas as pd    
df = pd.concat((testdf.reset_index(), pd.get_dummies(testdf.index.astype('datetime64[ns]').day_name())), axis=1).set_index('Time (CET)')
df = df[['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']]
df