如果我的行值在其他行的同一列(column1)中,如何找到其他列(column2)的行值
How to find the row value of other column(column2), if my row value isin same column(column1) in other row
我有这样的 DataFrame:
month CPT
5/1/2017 aa
5/1/2017 bb
5/1/2017 cc
6/1/2017 aa
6/1/2017 cc
6/1/2017 dd
7/1/2017 aa
7/1/2017 bb
7/1/2017 cc
我想要新列(old_bill),在同一列(CPT)中早期出现列(CPT)的行值之后,我需要列(月)值。预期的数据帧是:
period CPT old_bill
5/1/2017 aa nan
5/1/2017 bb nan
5/1/2017 cc nan
6/1/2017 aa 5/1/2017
6/1/2017 cc 5/1/2017
6/1/2017 dd nan
7/1/2017 aa 6/1/2017
7/1/2017 bb 5/1/2017
7/1/2017 cc 6/1/2017
我试过.isin 方法。但是我没有得到可显示的结果。
我相信您需要 DataFrameGroupBy.shift
- 每个组只需要连续的日期时间:
df['old_bill'] = df.groupby('CPT')['month'].shift()
print (df)
month CPT old_bill
0 5/1/2017 aa NaN
1 5/1/2017 bb NaN
2 5/1/2017 cc NaN
3 6/1/2017 aa 5/1/2017
4 6/1/2017 cc 5/1/2017
5 6/1/2017 dd NaN
6 7/1/2017 aa 6/1/2017
7 7/1/2017 bb 5/1/2017
8 7/1/2017 cc 6/1/2017
我有这样的 DataFrame:
month CPT
5/1/2017 aa
5/1/2017 bb
5/1/2017 cc
6/1/2017 aa
6/1/2017 cc
6/1/2017 dd
7/1/2017 aa
7/1/2017 bb
7/1/2017 cc
我想要新列(old_bill),在同一列(CPT)中早期出现列(CPT)的行值之后,我需要列(月)值。预期的数据帧是:
period CPT old_bill
5/1/2017 aa nan
5/1/2017 bb nan
5/1/2017 cc nan
6/1/2017 aa 5/1/2017
6/1/2017 cc 5/1/2017
6/1/2017 dd nan
7/1/2017 aa 6/1/2017
7/1/2017 bb 5/1/2017
7/1/2017 cc 6/1/2017
我试过.isin 方法。但是我没有得到可显示的结果。
我相信您需要 DataFrameGroupBy.shift
- 每个组只需要连续的日期时间:
df['old_bill'] = df.groupby('CPT')['month'].shift()
print (df)
month CPT old_bill
0 5/1/2017 aa NaN
1 5/1/2017 bb NaN
2 5/1/2017 cc NaN
3 6/1/2017 aa 5/1/2017
4 6/1/2017 cc 5/1/2017
5 6/1/2017 dd NaN
6 7/1/2017 aa 6/1/2017
7 7/1/2017 bb 5/1/2017
8 7/1/2017 cc 6/1/2017