2016-04-06 3 views
1

Metodu çağırdığım dataframe nesnesinin adını kullanmak yerine, bunun için kısayol adı mı var? Ör., BenDataFrame nesnesine DataFrame nesnesine erişme yöntemi çağrısı

long_data_frame_name.long_column_name.fillna(self.mean()) 
Öz çalışmıyor

(ben denedim :)) gibi bir şey içine bu kısaltmak mümkün istiyorum

long_data_frame_name.long_column_name.fillna(long_data_frame_name.long_column_name.mean()) 

böyle bir şey yapmak istediğinizi varsayalım . Sanırım R plyr'da sorduğum şeyi yapan . var.

Düzenleme: Sadece açık olmak gerekirse, uzun sarmal değişkenimi başka bir değişkene atabildiğimi biliyorum ancak isim değişkenini geçici değişkenlerle karıştırmamayı umuyordum.

cevap

1

Hayır, ancak önceden kısa bir başvuru oluşturabilirsiniz. Örneğin: daha sonra

ldfn = long_data_frame_name.long_column_name 

ve yapın: Aksi .fillna Verdiğiniz birini güncelleyerek yerine yeni DataFrame nesne dönecektir çünkü

ldfn.fillna(ldfn.mean(), inplace=True) 

inplace=True, gereklidir.

İşte tam bir örnek. inplace=True kullanarak,

import numpy as np 
import pandas as pd 

df = pd.DataFrame(np.ones((5,5)), columns=['aa','bb','cc','dd','ee']) 
df.iloc[2,2] = np.nan 
df 

    aa bb cc dd ee 
0 1.0 1.0 1.0 1.0 1.0 
1 1.0 1.0 1.0 1.0 1.0 
2 1.0 1.0 NaN 1.0 1.0 
3 1.0 1.0 1.0 1.0 1.0 
4 1.0 1.0 1.0 1.0 1.0 

Sonraki biz doldurmak ve orijinal DataFrame nesneye df uygulanan dolgu bkz: Önce Eksik değerle demo DataFrame kurmak Cevabını ama ben takdir

dflc = df.cc 
dflc.fillna(dflc.mean(), inplace=True) 
df 

    aa bb cc dd ee 
0 1.0 1.0 1.0 1.0 1.0 
1 1.0 1.0 1.0 1.0 1.0 
2 1.0 1.0 1.0 1.0 1.0 
3 1.0 1.0 1.0 1.0 1.0 
4 1.0 1.0 1.0 1.0 1.0  
+0

Benim sorumu özlediğini düşünüyorum. Uzun sarmal değişkenimi başka bir değişkene atabileceğimi biliyorum ama isim uzayını geçici değişkenlerle karıştırmamayı umuyordum. – Ben

+1

Ardından cevap sadece "Hayır". :) – mfitzp