小编Oso*_*ora的帖子

使用布尔系列/数组从pandas数据框中选择

我有一个数据帧:

             High    Low  Close
Date                           
2009-02-11  30.20  29.41  29.87
2009-02-12  30.28  29.32  30.24
2009-02-13  30.45  29.96  30.10
2009-02-17  29.35  28.74  28.90
2009-02-18  29.35  28.56  28.92
Run Code Online (Sandbox Code Playgroud)

和一个布尔系列:

     bools
1    True
2    False
3    False
4    True
5    False
Run Code Online (Sandbox Code Playgroud)

我如何使用布尔数组从数据框中选择以获得如下结果:

             High   
Date                           
2009-02-11  30.20  
2009-02-17  29.35  
Run Code Online (Sandbox Code Playgroud)

python dataframe

20
推荐指数
1
解决办法
2万
查看次数

尝试.loc后的pandas SettingWithCopyWarning

首先,我构建一个新的DataFrame框架.然后通过从帧中过滤一些数据来创建一个新的frame2.现在我想为frame2分配一些值:

import numpy as np
from pandas import DataFrame

frame = DataFrame(np.arange(9).reshape((3, 3)), index=['a', 'c', 'd'], columns=['Ohio', 'Texas', 'California'])
mask = frame['Texas'] > 1
print frame[mask]
frame2 = frame.loc[mask]
frame2.loc['c', 'Ohio'] = 'me'
print frame2
Run Code Online (Sandbox Code Playgroud)

但我得到了这个警告:

C:\Python27\lib\site-packages\pandas\core\indexing.py:461: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead
Run Code Online (Sandbox Code Playgroud)

尽管我使用了推荐的.loc语法,为什么我仍然得到这个警告?我该怎么做才能避免这种警告?

python pandas

5
推荐指数
1
解决办法
210
查看次数

标签 统计

python ×2

dataframe ×1

pandas ×1