2016-04-04 21 views
-1

döner yanlış dataFrame Üyelik:Pandalar: Birleştirme veya ben birleştirmek veya Python katılmak isteyen iki dataframes var

"veri":

 shortcontentid hour_timings not_relevant other postman_challenges \ 
    0    1   NaN   1.0 NaN     NaN 
    1    2   NaN   3.0 NaN     NaN 

Ve dataframe "Verbatim":

           sentences shortcontentid 
0 Gabe_Newell a écrit : 40 maxi en luminosité ? ...    1 
1 J'aime une vidéo @YouTube de @seb_frit - CE ME...    2 

Bu kareleri, iki çerçevede ortak olan birincil anahtarla shortcontentid kaldırarak birleştirmek istiyorum. Gördüğünüz gibi, sadece sentences sütununu verbatims dataframe'den data dataframe'e eklemekten ibarettir. Ben klasik bir birleştirme yapın:

table = data.merge(verbatims, on='shortcontentid', how = "left") 

ancak kod çalışmak veya yanlış dataframe döndürmez. Örneğin, table üzerinde bir baskı yapmam durumunda verbatims değerlerine sahip olacağım, ancak data değerlerine sahip olmayacağım. Benim asıl cümle görmek istiyorum oysa

 nonusable 2 or bigger sentences 
0   1  qualite  NaN 

sen sentences görebileceğiniz gibi NaN ile doldurulur: İşte bir örnek.

*NB : I imported my data from `pandas.csv` : 

data = pandas.read_csv("data crowdflower.csv", sep=";", header=0, engine='python')* 

Bu tablolarda temiz birleştirme/birleştirmenin en iyi yolu ne olurdu?

Teşekkürler!

+1

İşlenmemiş örnek verileri göndererek neyin işe yaramadığını açıklayın, dfs'nizi oluşturmak için kod ve yanlış birleştirme neyin göründüğünü neye dikkat edin – EdChum

+0

Tamam İletimi düzenledim. Ancak örnek veri gönderebilirim. –

cevap

0

bu formda Deneyin:

table = pandas.merge(data, verbatims, how='inner', on='shortcontentid') 
print (table) 
+0

İç birleştirme, yalnızca sütun adlarım ile boş bir veri çerçevesi döndürdüğü gibi çalışmayacak: 'Boş DataFrame Sütunlar: [shortcontentid, hour_timings, not_relevant, diğer, postman_challenges, postman_relationship, quality_postman_work, Total g n ral, sonuç, kullanılamaz, 2 veya daha büyük, _unit_id, _created_at, _updated_at, marka, cümleler] Dizin: [] ' –

0

Ben kısmen sorunumu anladım. verbatims numaralı telefondan dtype shortcontentid bir tam sayı iken, data numaralı belgede bir nesnedir. Yani dtype nesnesinden int'ye dönüştürmek zorundayım. Denedim:

pandas.to_numeric(data) 

ancak aşağıdaki hata verir: bu yüzden hala bloke am

arg must be a list, tuple, 1-d array, or Series 

.

İlgili konular