İnsanların adlarını sıralayan bir komut dosyası üzerinde çalışıyorum. Bu csv modülünü kullanarak çalışmıştım, ama bu daha büyük bir panda projesine bağlı olacağından, onu dönüştüreceğimi düşündüm.python/pandas elif deyimi
Tek bir ad alanını, ilk, orta ve son için alanlara ayırmam gerekiyor. Orijinal alanın ilk adı ilk sıradadır. Eski: Richard Wayne Van Dyke.
Adları ayırırım ancak "Van Dyke" nin soyadını olmasını istiyorum.
df = pd.DataFrame({'Name':['Richard Wayne Van Dyke','Gary Del Barco','Dave Allen Smith']})
df = df.fillna('')
df =df.astype(unicode)
splits = df['Name'].str.split(' ', expand=True)
df['firstName'] = splits[0]
if splits[2].notnull and splits[3].isnull:#this works for Bret Allen Cardwell
df['lastName'] = splits[2]
df['middleName'] = splits[1]
print "Case 1: First: " + df['firstName'] + " middle: " +df['middleName'] + " last: " + df['lastName']
elif splits[2].all() == 'Del':#trying to get last name of "Del Barco"
print 'del'
df['middleName'] = ''
df['lastName'] = splits[2] + " " + splits[3]
print "Case 2: First: " + df['firstName'] + " middle: " +df['middleName'] + " last: " + df['lastName']
elif splits[3].notnull: #trying to get last name of "Van Dyke"
df['middleName'] = splits[1]
df['lastName'] = splits[2] + " " + splits[3]
print "Case 3: First: " + df['firstName'] + " middle: " +df['middleName'] + " last: " + df['lastName']
Ben o temel şey var:
İştewith open('inputfil.csv') as inf:
docs = csv.reader(inf)
next(ccaddocs, None)
for i in docs:
#print i
fullname = i[1]#it's the second column in the input file
namelist =fullname.split(' ')
firstname = namelist[0]
middlename = namelist[1]
if len(namelist) == 2:
lastname = namelist[1]
middlename = ''
elif len(namelist) == 3:
lastname = namelist[2]
elif len(namelist) == 4:
lastname = namelist[2] + " " + namelist[3] #gets Van Dyke in lastname
print "First: " + firstname + " middle: " + middlename + " last: " + lastname
Ben ile benim pandalar tabanlı kod mücadele ediyorum ki: Burada
çalışır csv modülü için benim kodudur eksik.
pandalar çözemedim ama pandalar verileri geçirmeden önce işi yapacak benim csv kodu revize ettik. Yukarıdaki csv kodunda olduğu gibi 'csv.reader' yerine 'csv.DictReader' olarak değiştirdim. Verileri bir sözlüğe aktararak, csv kodunun çalışması için Ad alanı için anahtar değer çiftlerini kullanmak kolaydı. – mattrweaver