【发布时间】:2017-07-18 11:54:02
【问题描述】:
我有以下代码
import pandas as pd
import numpy as np
import csv
location = r'C:\Users\tmaina\Desktop\scf\output.csv'
df = pd.read_csv(location,sep='\s*,\s*',engine='python')
for i, row in df.iterrows():
if row['COUPON_NUMBER'] == 1:
df.OND_ORIGIN = df.DEP_FROM
if df.loc[i+1,'PLDATE'] == row['PLDATE'] & row['TICKET_NUMBER'] ==df.loc[i+1,'TICKET_NUMBER'] &row['COUPON_NUMBER'] == 2:
df.OND_DEST = df.loc[i+1,'ARR_TO']
else:
df.OND_DEST = df.ARR_TO
elif row['COUPON_NUMBER'] == 2 & row['TICKET_NUMBER'] ==df.loc[i-1,'TICKET_NUMBER'] & row['PLDATE'] ==df.loc[i-1,'PLDATE']:
df.OND_ORIGIN==df.loc[i-1,'DEP_FROM']
df.OND_DEST = df.ARR_TO
elif row['COUPON_NUMBER'] == 3 & row['TICKET_NUMBER'] ==df.loc[i-1,'TICKET_NUMBER'] & row['PLDATE'] !=df.loc[i-1,'PLDATE']:
df.OND_ORIGIN = df.DEP_FROM
if df.loc[i+1,'PLDATE'] == row['PLDATE'] & row['TICKET_NUMBER'] ==df.loc[i-1,'TICKET_NUMBER']:
df.OND_DEST = df.loc[i+1,'ARR_TO']
else:
df.OND_DEST = df.ARR_TO
elif row['COUPON_NUMBER'] == 4 & row['TICKET_NUMBER'] ==df.loc[i-1,'TICKET_NUMBER']& row['PLDATE'] ==df.loc[i-1,'PLDATE']:
df.OND_ORIGIN = df.loc[i-1,'DEP_FROM']
df.OND_DEST = df.ARR_TO
df.to_csv('out.csv', sep=',',index = False)
以下列的输出是
COUPON_NUMBER TICKET_NUMBER DEP_FROM ARR_TO OND_ORIGIN OND_DEST PLDATE STOPOVER
1 1054737998 HRE NBO HRE NBO 20170419 O
2 1054737998 NBO KGL NBO KGL 20170419 X
3 1054737998 KGL NBO KGL NBO 20170519 O
4 1054737998 NBO HRE NBO HRE 20170419 X
想要的输出是
COUPON_NUMBER TICKET_NUMBER DEP_FROM ARR_TO OND_ORIGIN OND_DEST PLDATE STOPOVER
1 1054737998 HRE NBO HRE KGL 20170419 O
2 1054737998 NBO KGL HRE KGL 20170419 X
3 1054737998 KGL NBO KGL HRE 20170519 O
4 1054737998 NBO HRE KGL HRE 20170419 X
逻辑是,对于属于特定机票的给定coupon_number,我们检查pldate,如果同一月有多个优惠券,ond_origin 和ond_dest 应该相等。 ond_dest 是通过检查是否在特定城市停留来确定的。如果有,arr_to 会变成ond_dest,ond_origin 会变成第一个dep_from,不会停下来。
【问题讨论】:
-
@Chris 指出,感谢您的更正
-
你的原始 output.csv 文件格式 raws 怎么样?
-
我们需要一些示例输入来创建您的预期输出。
-
@ScottBoston 在以下链接中找到输入:drive.google.com/open?id=0B-YHr391t2TxNDNwZjFRektJTWs
-
@BeyhanGül 在链接drive.google.com/open?id=0B-YHr391t2TxNDNwZjFRektJTWs中找到原始csv
标签: python pandas dataframe data-science