Stu*_*nce 2 python data-analysis pandas
数据框中是否存在条件"移位"参数?
例如,
假设我拥有一辆二手车,我的数据如下
SaleDate Car
12/1/2016 Wrangler
12/2/2016 Camry
12/3/2016 Wrangler
12/7/2016 Prius
12/10/2016 Prius
12/12/2016 Wrangler
Run Code Online (Sandbox Code Playgroud)
我想从这个列表中找到两件事 -
1)对于每次销售,汽车售出的最后一天是什么时候?这在Pandas中很简单,只是一个简单的转变如下
df['PriorSaleDate'] = df['SaleDate'].shift()
Run Code Online (Sandbox Code Playgroud)
2)对于每次销售,同一类型汽车的销售日期是什么时候?因此,例如,12/3处的牧马人销售将指向两行返回到12/1(最后一次第3行中的"汽车"值等于前一行中的"汽车"值).
对于12/12年出售的牧马人,我希望价值12/3
是否有一个条件移位参数,允许我在那里得到行df ['Car']等于该行中df ['Car']的值?
非常感谢你的帮助
你可以使用groupby和shift():
import io
import pandas as pd
text = """SaleDate Car
12/1/2016 Wrangler
12/2/2016 Camry
12/3/2016 Wrangler
12/7/2016 Prius
12/10/2016 Prius
12/12/2016 Wrangler"""
df = pd.read_csv(io.StringIO(text), delim_whitespace=True, parse_dates=[0])
df["lastSaleDate"] = df.groupby("Car").SaleDate.shift()
Run Code Online (Sandbox Code Playgroud)
输出:
SaleDate Car lastSaleDate
0 2016-12-01 Wrangler NaT
1 2016-12-02 Camry NaT
2 2016-12-03 Wrangler 2016-12-01
3 2016-12-07 Prius NaT
4 2016-12-10 Prius 2016-12-07
5 2016-12-12 Wrangler 2016-12-03
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1371 次 |
| 最近记录: |