import pandas as pd\nimport numpy as np\n\none = pd.read_csv('data1.csv')\ntwo = pd.read_csv('data2.csv')\nRun Code Online (Sandbox Code Playgroud)\n\n我这样写代码,其中一个显示
\n\nA Date\n10 2011-01-03\n20 2011-01-04\n10 2011-01-06\n20 2011-01-07\n30 2011-01-10\n40 2011-01-13\n25 2011-01-15\n\xe3\x83\xbb\n\xe3\x83\xbb\n\xe3\x83\xbb\nRun Code Online (Sandbox Code Playgroud)\n\n两个\xc2\xa0显示
\n\nB Date\n15 2011-01-01\n15 2011-01-02\n15 2011-01-03\n25 2011-01-07\n35 2011-01-10\n10 2011-01-13\n25 2011-01-15\n\xe3\x83\xbb\n\xe3\x83\xbb\n\xe3\x83\xbb\nRun Code Online (Sandbox Code Playgroud)\n\n我想在数据框被标记时将 0 添加到缺失的 date\xe2\x80\x99s 数据中。\n现在我编写了代码
\n\none_and_two = pd.merge(one, two, on='Date', how='inner')\nprint(one_and_two)\nRun Code Online (Sandbox Code Playgroud)\n\n并运行,one_and_two 是
\n\n \xe3\x80\x80A Date \xe3\x80\x80 B\n0 10 2011-01-03 15\n1 20 2011-01-07 25\n2 30 2011-01-10 35\n3 40 2011-01-13 10\n4 25 2011-01-15 25\n\xe3\x83\xbb\n\xe3\x83\xbb\n\xe3\x83\xbb\nRun Code Online (Sandbox Code Playgroud)\n\n理想的输出是
\n\n \xe3\x80\x80A Date \xe3\x80\x80 B\n0 0 2011-01-01 15\n1 0 2011-01-02 15\n2 10 2011-01-03 15\n3 20 2011-01-04 0\n4 0 2011-01-05 0\n5 10 2011-01-06 0\n6 20 2011-01-07 25\n7 0 2011-01-08 0\n8 0 2011-01-09 0\n9 30 2011-01-10 35\n\xe3\x83\xbb\n\xe3\x83\xbb\n\xe3\x83\xbb\nRun Code Online (Sandbox Code Playgroud)\n\nDataframe 有 2011-01-01 \xe3\x80\x9c2011-12-31 ,\n我想将 0 放入缺失的 date\xe2\x80\x99s 数据,但是 \n我该怎么做?我的代码出了什么问题?
\n使用reindex具有定义的日期范围的外连接:
df = (pd.merge(one, two, on='Date', how='outer')
.fillna(0)
.sort_values('Date')
.set_index('Date'))
df = (df.reindex(pd.date_range('2011-01-01', '2011-12-31'), name='Date'), fill_value=0)
.reset_index()
.reindex(columns=['A','Date','B']))
Run Code Online (Sandbox Code Playgroud)
或者按最小和最大日期:
df = (df.reindex(pd.date_range(df.index.min(), df.index.max(), name='Date'), fill_value=0)
.reset_index()
.reindex(columns=['A','Date','B']))
print (df)
A Date B
0 0.0 2011-01-01 15.0
1 0.0 2011-01-02 15.0
2 10.0 2011-01-03 15.0
3 20.0 2011-01-04 0.0
4 0.0 2011-01-05 0.0
5 10.0 2011-01-06 0.0
6 20.0 2011-01-07 25.0
7 0.0 2011-01-08 0.0
8 0.0 2011-01-09 0.0
9 30.0 2011-01-10 35.0
10 0.0 2011-01-11 0.0
11 0.0 2011-01-12 0.0
12 40.0 2011-01-13 10.0
13 0.0 2011-01-14 0.0
14 25.0 2011-01-15 25.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5218 次 |
| 最近记录: |