Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
pythonÊý¾Ý·ÖÎöÖ®PandasÊý¾Ý½á¹¹ºÍ²Ù×÷
 
  3051  次浏览      35
 2018-9-26 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚÍøÂç,ÎÄÕÂÖ÷Òª½éÉÜÁËPandsÊý¾Ý½á¹¹£¬²¢¶ÔSeriesºÍDataFrame½øÐÐÁËÏêϸ²ûÊö¡£

PandasÊÇʲô£¿

1¡¢Ò»¸öÇ¿´óµÄ·ÖÎö ½á¹¹»¯Êý¾Ý µÄ¹¤¾ß¼¯

2¡¢»ù´¡ÊÇNumPy£¬ÌṩÁË ¸ßÐÔÄܾØÕó µÄÔËËã

3¡¢Ó¦ÓÃÔÚÊýѧÍÚ¾ò£¬Êý¾Ý·ÖÎö¡£±ÈÈ磬ѧÉú³É¼¨·ÖÎö£¬¹ÉƱÊý¾Ý·ÖÎöµÈ

4¡¢ÌṩÊý¾ÝÇåÏ´¹¦ÄÜ

#ʹÓÃ
import pandas as pd

PandsÊý¾Ý½á¹¹£¬Ö÷Òª·ÖΪÁ½ÖÖ£¬SeriesºÍDataFrame

Series

1¡¢ÀàËÆÒ»Î¬Êý×éµÄ¶ÔÏó

2¡¢Í¨¹ýlist¹¹½¨Series

ser_obj = pd.Series(rang(10))

3¡¢ÓÉÊý¾ÝºÍË÷Òý×é³É

Ë÷ÒýÔÚ×ó£¬Êý¾ÝÔÚÓÒ

Ë÷ÒýÊÇ×Ô¶¯´´½¨µÄ

4¡¢»ñÈ¡Êý¾ÝºÍË÷Òý

ser_obj.index
ser_obj.values

5¡¢Ô¤ÀÀÊý¾Ý(ȡǰ¼¸¸ö)

ser_obj.head(n)

6¡¢Í¨¹ýË÷Òý»ñÈ¡Êý¾Ý

ser_obj[1]
ser_obj[8]

7¡¢Ë÷ÒýÓëÊý¾ÝµÄ¶ÔÓ¦¹ØÏµÈÔ±£³ÖÔÚÊý×éÔËËãµÄ½á¹ûÖУ¨¹ýÂËseriesÖеÄÊý¾Ý£©

print(ser_obj[ser_obj > 15])

8¡¢Í¨¹ýdict¹¹½¨Series

year_data = {2001: 17.8, 2002: 20.1, 2003: 16.5}
ser_obj2 = pd.Series(year_data)
print(ser_obj2.head())
print(ser_obj2.index)
ser_obj2.name = 'temp'
#Ö¸¶¨nameÃû³Æ£¨Ï൱ÓÚ±íÍ·£©
ser_obj2.index.name = 'year'
print(ser_obj2.head())
=================================
2001 17.8
2002 20.1
2003 16.5
dtype: float64
Int64Index([2001, 2002, 2003], dtype='int64')
year
2001 17.8
2002 20.1
2003 16.5
Name: temp, dtype: float64

DataFrame

1¡¢ÀàËÆ¶àάÊý×é/±í¸ñÊý¾Ý

2¡¢Ã¿ÁÐÊý¾Ý¿ÉÒÔÊDz»Í¬µÄÀàÐÍ

3¡¢Ë÷Òý°üÀ¨ÐÐË÷ÒýºÍÁÐË÷Òý

import numpy as np
# ͨ¹ýndarray¹¹½¨DataFrame
array = np.random.randn(5,4)
print(array)
df_obj = pd.DataFrame(array)
print(df_obj)
# ͨ¹ýdict¹¹½¨DataFrame
dict_data = {'A': 1.,
'B': pd.Timestamp('20161217'),
'C': pd.Series(1, index=list(range(4)),dtype='float32'),
'D': np.array([3] * 4,dtype='int32'),
'E' : pd.Categorical(["Python","Java","C++","C#"]),
'F' : 'ChinaHadoop' }
#print dict_data
df_obj2 = pd.DataFrame(dict_data)
print(df_obj2.head())
# ͨ¹ýÁÐË÷Òý»ñÈ¡ÁÐÊý¾Ý(dataFrameÓÅÏÈͨ¹ýÁÐË÷Òý·ÃÎÊÊý¾Ý)
print(df_obj2['A'])
#ͨ¹ýË÷Òý·ÃÎÊÊý¾Ý
print(df_obj2.values[2])
#ÿÁж¼ÊÇÒ»¸öseries
print(type(df_obj2['A']))
#ͨ¹ý¶ÔÏóÊôÐÔ·ÃÎÊ
print(df_obj2.A)
# Ôö¼ÓÁУ¬ÀàËÆdictÌí¼Ókey-value
df_obj2['G'] = df_obj2['D'] + 4
print(df_obj2.head())
# ɾ³ýÁÐ
del(df_obj2['G'] )
print(df_obj2.head())

Index Ë÷Òý¶ÔÏó

1¡¢SeriesºÍDataFrameÖеÄË÷Òý¶¼ÊÇIndex¶ÔÏó

2¡¢Index¾ßÓв»¿É±äÐÔ£¨immutable£©£¬¼´SeriesºÍDataFrameÖеÄvalue¿ÉÒԸı䣬µ«ÊÇË÷Òý²»¿É±ä£¬±£Ö¤ÁËÊý¾ÝµÄ°²È«

3¡¢³£¼ûµÄIndexÖÖÀà

Index Int64Index MultiIndex(²ã¼¶Ë÷Òý) DatatimeIndex(ʱ¼ä´ÁÀàÐÍ)

print(type(ser_obj.index))
print(type(df_obj2.index))
print(df_obj2.index)
=====================================
<class 'pandas.core.indexes.range.RangeIndex'>
<class 'pandas.core.indexes.numeric.Int64Index'>
Int64Index([0, 1, 2, 3], dtype='int64')

SeriesÊý¾Ý²Ù×÷

import pandas as pd
#index,Ö¸¶¨Ë÷ÒýÃû³Æ
ser_obj = pd.Series(range(5), index = ['a', 'b', 'c', 'd', 'e'])
print(ser_obj.head())
# ͨ¹ýË÷Òýȡֵ ser_obj['label'],ser_obj[pos]
print(ser_obj['a']) //ͨ¹ýË÷ÒýÃûȡֵ
print(ser_obj[0]) //ͨ¹ýλÖÃË÷Òýȡֵ
# ÇÐÆ¬Ë÷Òý
print(ser_obj[1:3]) // ǰ¿ªºó±Õ£¬¼´£¬È¡µ½Á½¸öÖµ
print(ser_obj['b':'d']) //ǰ±Õºó±Õ£¬¼´£¬È¡µ½Èý¸öÖµ
# ²»Á¬ÐøË÷Òý
print(ser_obj[[0, 2, 4]]) // ÄÚ²¿ÊÇlist
print(ser_obj[['a', 'e']]) //ÄÚ²¿ÊÇlist
# ²¼¶ûË÷Òý
ser_bool = ser_obj > 2
print(ser_bool)
print(ser_obj[ser_bool])
print(ser_obj[ser_obj > 2])

DataFrameÊý¾Ý²Ù×÷

import numpy as np
# colmns Ö¸¶¨ÁÐÃû
df_obj = pd.DataFrame(np.random.randn(5,4), columns = ['a', 'b', 'c', 'd'])
print(df_obj.head())
# ÁÐË÷Òý
print('ÁÐË÷Òý')
print(df_obj['a']) # ·µ»ØSeriesÀàÐÍ
print(type(df_obj)) # ·µ»ØDataFrameÀàÐÍ
# ²»Á¬ÐøË÷Òý
print('²»Á¬ÐøË÷Òý')
print(df_obj[['a','c']]) # ·µ»ØµÚÒ»Áк͵ÚÈýÁÐ

Ë÷Òý²Ù×÷×ܽá

PandasµÄË÷Òý²Ù×÷¿É¹éÄÉΪ3ÖÖ

.loc£º±êÇ©Ë÷Òý£¨±êÇ©µÄÇÐÆ¬Ë÷ÒýÊǰüº¬Ä©Î²Î»Öõģ¬ÉÏÃæµÄǰ±Õºó±Õ£©

.iloc: λÖÃË÷Òý

.ix£º ±êÇ©ÓëλÖûìºÏË÷Òý

-------------ÏȰ´±êÇ©Ë÷Òý³¢ÊÔ²Ù×÷£¬È»ºóÔÙ°´ÕÕλÖÃË÷Òý³¢ÊÔ²Ù×÷

# ±êÇ©Ë÷Òý loc
# Series
print(ser_obj['b':'d'])
print(ser_obj.loc['b':'d'])
# DataFrame
print(df_obj['a'])
print(df_obj.loc[0:2, 'a'])
# ÕûÐÍλÖÃË÷Òý iloc
print(ser_obj[1:3])
print(ser_obj.iloc[1:3])
# DataFrame
µÚÒ»¸ö²ÎÊý£¬±íʾµÄÊǵÚ1Ðк͵ڶþÐУ¬µÚ¶þ¸ö0±íʾµÄÄÄÒ»ÁÐ
print(df_obj.iloc[0:2, 0]) # ×¢ÒâºÍdf_obj.loc[0:2, 'a']µÄÇø±ð

ÔËËãÓë¶ÔÆë

°´Ë÷Òý¶ÔÆëÔËË㣬û¶ÔÆëµÄλÖò¹NaN

s1 = pd.Series(range(10, 20), index = range(10))
s2 = pd.Series(range(20, 25), index = range(5))
# Series ¶ÔÆëÔËËã,Series°´ÐÐË÷Òý¶ÔÆë£¬Ã»¶ÔÆëµÄλÖò¹NaN
print(s1 + s2)
==================================================
0 30.0
1 32.0
2 34.0
3 36.0
4 38.0
5 NaN
6 NaN
7 NaN
8 NaN
9 NaN
================================================
import numpy as np
df1 = pd.DataFrame(np.ones((2,2)), columns = ['a', 'b'])
df2 = pd.DataFrame(np.ones((3,3)), columns = ['a', 'b', 'c'])
# DataFrame¶ÔÆë²Ù×÷
print(df1 + df2)
=============================
a b c
0 2.0 2.0 NaN
1 2.0 2.0 NaN
2 NaN NaN NaN
================================
# Ìî³äδ¶ÔÆëµÄÊý¾Ý½øÐÐÔËËã
#ʹÓÃadd,sub,div,mul£»Í¬Ê±Í¨¹ýfill_valueÖ¸¶¨Ìî³äÖµ
s1.add(s2, fill_value = 1)
df1.sub(df2, fill_value = 2.)
# Ìî³äNaN
s3 = s1 + s2
s3_filled = s3.fillna(-1)//°ÑËùÓеÄNaNʹÓÃ-1Ìî³ä
df3 = df1 + df2
df3.fillna(100, inplace = True)//°ÑËùÓеÄNaNʹÓÃ100Ìî³ä

º¯ÊýÓ¦ÓÃ

# Numpy ufunc º¯Êý
df = pd.DataFrame(np.random.randn(5,4) - 1)
#Çó¾ø¶ÔÖµ£¬×÷ÓÃÓÚdfÖÐÿ¸öÊý¾Ý
print(np.abs(df))
# ʹÓÃapplyÓ¦ÓÃÐлòÁÐÊý¾Ý
#Èç¹ûûÓÐÖ¸¶¨axis·½Ïò£¬Ä¬Èϰ´ÁУ¬axis =0
print(df.apply(lambda x : x.max()))
# Ö¸¶¨Öá·½Ïò
print(df.apply(lambda x : x.max(), axis=1))
# ʹÓÃapplymapÓ¦Óõ½Ã¿¸öÊý¾Ý
f2 = lambda x : '%.2f' % x
print(df.applymap(f2))

ÅÅÐò

s4 = pd.Series(range(10, 15), index = np.random.randint(5, size=5))
# Ë÷ÒýÅÅÐò
s4.sort_index()
df4 = pd.DataFrame(np.random.randn(3, 4),
index=np.random.randint(3, size=3),
columns=np.random.randint(4, size=4))
df4.sort_index(axis=1)
# °´ÖµÅÅÐò sort_values(by='label')
df4.sort_values(by=1)

´¦ÀíȱʧÊý¾Ý

import numpy as np
df_data = pd.DataFrame([np.random.randn(3), [1., np.nan, np.nan],
[4., np.nan, np.nan], [1., np.nan, 2.]])
df_data.head()
# isnull
df_data.isnull()
# dropna ¶ªÆúȱʧÊý¾Ý
df_data.dropna()
#df_data.dropna(axis=1)
# fillna Ìî³äȱʧÊý¾Ý
df_data.fillna(-100.)
   
3051 ´Îä¯ÀÀ       35
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ