我有像这样缺少日期的数据集。
date,value
2015-01-01,7392
2015-01-03,4928
2015-01-06,8672
Run Code Online (Sandbox Code Playgroud)
这是我期望实现的目标。
date,value
2015-01-01,7392
2015-01-02,7392 # ffill 1st
2015-01-03,4928
2015-01-04,4928 # ffill 3rd
2015-01-05,4928 # ffill 3rd
2015-01-06,8672
Run Code Online (Sandbox Code Playgroud)
我尝试了很多,我阅读了文档,但找不到解决方案。我猜想使用 df.resample('d',fill_method='ffill'),但我还没有到达这里。有人可以帮我解决问题吗?
这就是我所做的。
>>> import pandas as pd
>>> df = pd.read_csv(text,sep="\t",index_col='date')
>>> df.index = df.index.to_datetime()
>>> index = pd.date_range(df.index[1],df.index.max())
Run Code Online (Sandbox Code Playgroud)
在这里,我得到了从 2015-01-01 到 2015-01-06 的 DatetimeIndex。
>>> values = [ x for x in range(len(index)) ]
>>> df2 = pd.DataFrame(values,index=index)
Run Code Online (Sandbox Code Playgroud)
接下来我要合并原始数据和DatetimeIndex。
>>> df + df2
0 value
2015-01-01 NaN NaN
2015-01-02 NaN NaN
2015-01-03 NaN NaN
2015-01-04 NaN …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的"sample.txt".
idx A B C D cat
J 1 2 3 1 x
K 4 5 6 2 x
L 7 8 9 3 y
M 1 2 3 4 y
N 4 5 6 5 z
O 7 8 9 6 z
Run Code Online (Sandbox Code Playgroud)
使用此数据集,我希望在行和列中得到总和.在行中,这不是什么大不了的事.我做了这样的结果.
### MY CODE ###
import pandas as pd
df = pd.read_csv('sample.txt',sep="\t",index_col='idx')
df.info()
df2 = df.groupby('cat').sum()
print( df2 )
Run Code Online (Sandbox Code Playgroud)
结果是这样的.
A B C D
cat
x 5 7 9 3
y 8 10 12 7
z 11 …Run Code Online (Sandbox Code Playgroud)