One - One Code All

Blog Content

pandas中dataframe和series索引定位和选择loc:Indexing and Selecting Data

Python 统计学-科学计算   2015-02-10 23:11:40

pandas中dataframe和series索引定位和选择loc:Indexing and Selecting Data


Series: s.loc[indexer]

DataFrame: df.loc[row_indexer,column_indexer]



Object TypeIndexers

Seriess.loc[indexer]

DataFramedf.loc[row_indexer,column_indexer]



Object TypeSelectionReturn Value Type

Seriesseries[label]scalar value

DataFrameframe[colname]Series corresponding to colname

In [1]: dates = pd.date_range('1/1/2000', periods=8)

In [2]: df = pd.DataFrame(np.random.randn(8, 4),
   ...:                   index=dates, columns=['A', 'B', 'C', 'D'])
   ...: 

In [3]: df
Out[3]: 
                   A         B         C         D
2000-01-01  0.469112 -0.282863 -1.509059 -1.135632
2000-01-02  1.212112 -0.173215  0.119209 -1.044236
2000-01-03 -0.861849 -2.104569 -0.494929  1.071804
2000-01-04  0.721555 -0.706771 -1.039575  0.271860
2000-01-05 -0.424972  0.567020  0.276232 -1.087401
2000-01-06 -0.673690  0.113648 -1.478427  0.524988
2000-01-07  0.404705  0.577046 -1.715002 -1.039268
2000-01-08 -0.370647 -1.157892 -1.344312  0.844885

Note None of the indexing functionality is time series specific unless specifically stated.
Thus, as per above, we have the most basic indexing using []:

In [4]: s = df['A']

In [5]: s[dates[5]]
Out[5]: -0.6736897080883706
 

In [6]: df
Out[6]: 
                   A         B         C         D
2000-01-01  0.469112 -0.282863 -1.509059 -1.135632
2000-01-02  1.212112 -0.173215  0.119209 -1.044236
2000-01-03 -0.861849 -2.104569 -0.494929  1.071804
2000-01-04  0.721555 -0.706771 -1.039575  0.271860
2000-01-05 -0.424972  0.567020  0.276232 -1.087401
2000-01-06 -0.673690  0.113648 -1.478427  0.524988
2000-01-07  0.404705  0.577046 -1.715002 -1.039268
2000-01-08 -0.370647 -1.157892 -1.344312  0.844885

In [7]: df[['B', 'A']] = df[['A', 'B']]

In [8]: df
Out[8]: 
                   A         B         C         D
2000-01-01 -0.282863  0.469112 -1.509059 -1.135632
2000-01-02 -0.173215  1.212112  0.119209 -1.044236
2000-01-03 -2.104569 -0.861849 -0.494929  1.071804
2000-01-04 -0.706771  0.721555 -1.039575  0.271860
2000-01-05  0.567020 -0.424972  0.276232 -1.087401
2000-01-06  0.113648 -0.673690 -1.478427  0.524988
2000-01-07  0.577046  0.404705 -1.715002 -1.039268
2000-01-08 -1.157892 -0.370647 -1.344312  0.844885


官方参考:http://pandas-docs.github.io/pandas-docs-travis/user_guide/indexing.html



上一篇:Pandas中merge合并Dataframe报错:merge on datetime64[ns] and object columns
下一篇:python的web server http报错socket.error: [Errno 48] Address already in use

The minute you think of giving up, think of the reason why you held on so long.