आप पहली बार कॉलम में स्ट्रिंग ?
ढूंढने का प्रयास कर सकते हैं, बूलियन मास्क और अंतिम फ़िल्टर पंक्तियां बना सकते हैं - boolean indexing का उपयोग करें। आप float
करने के लिए कॉलम परिवर्तित की जरूरत है, astype
का उपयोग करें:
print ~((df['X'] == '?') (df['Y'] == '?') | (df['Z'] == '?'))
0 False
1 True
2 False
3 True
4 False
dtype: bool
df1 = df[~((df['X'] == '?') | (df['Y'] == '?') | (df['Z'] == '?'))].astype(float)
print df1
X Y Z
1 1 2 3
3 4 4 4
print df1.dtypes
X float64
Y float64
Z float64
dtype: object
या आप कोशिश कर सकते हैं:
df['X'] = pd.to_numeric(df['X'], errors='coerce')
df['Y'] = pd.to_numeric(df['Y'], errors='coerce')
df['Z'] = pd.to_numeric(df['Z'], errors='coerce')
print df
X Y Z
0 0 1 NaN
1 1 2 3
2 NaN NaN 4
3 4 4 4
4 NaN 2 5
print ((df['X'].notnull()) & (df['Y'].notnull()) & (df['Z'].notnull()))
0 False
1 True
2 False
3 True
4 False
dtype: bool
print df[ ((df['X'].notnull()) & (df['Y'].notnull()) & (df['Z'].notnull())) ].astype(float)
X Y Z
1 1 2 3
3 4 4 4
'बाहर = df.replace ({ '?': numpy.nan})। dropna() .astype (फ्लोट) ' –
यह नीचे दिए गए उत्तर जैसा ही है लेकिन एक लाइनर के साथ बहुत अच्छा है। धन्यवाद – Anonymous