我是pandas的新手,有一个数据框,df
(pybert) Davids-Air-2:PyBERT dbanas$ ls -A ~/tmp/site-packages/pybert/doc/_build/html/
genindex.html intro.html objects.inv search.html
index.html modules.html py-modindex.html searchindex.js
我想要一个像这样的数据框
Index prt Mb
2017-08-09 tt 0
2017-08-09 uu 140
2017-08-10 uu 200
2017-08-11 tt 0
2017-08-11 tt 150
2017-08-16 uu 200
ttt列应该用除以1000的除法结果替换。我怎么能去做呢?
答案 0 :(得分:2)
我怀疑你在这里需要groupby
df= df.sort_values('Mb',ascending=False)
df['ttt'] = df['Mb'].div(1000)
# Based on the comment. `df['ttt'] = pd.to_numeric(df['Mb'],errors='coerce').div(1000)`
Index prt Mb ttt
2 2017-08-10 uu 200 0.20
5 2017-08-16 uu 200 0.20
4 2017-08-11 tt 150 0.15
1 2017-08-09 uu 140 0.14
0 2017-08-09 tt 0 0.00
3 2017-08-11 tt 0 0.00
要从数据帧中删除tt
,简单的布尔索引就足够了,即
df[df['prt'].eq('uu')]
Index prt Mb ttt
2 2017-08-10 uu 200 0.20
5 2017-08-16 uu 200 0.20
1 2017-08-09 uu 140 0.14