首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Pandas,如何在变量中保存复杂视图

Pandas,如何在变量中保存复杂视图
EN

Stack Overflow用户
提问于 2018-06-01 21:58:55
回答 1查看 113关注 0票数 0

我正在尝试对熊猫数据帧的特定部分执行一些操作。为此,我希望获得我的数据帧的视图,将其保存在一个变量中并使用该变量(这样就不必每次都重新计算视图)。到目前为止我的代码如下:

spikes.loc[(stims.at[i, 'StimOnset'] <= spikes['SpikeTimes']) & (spikes['SpikeTimes'] <= stims.at[i, 'StimOffset']), 'StimPeriod'] = True
temp = spikes.loc[(stims.at[i, 'StimOnset'] <= spikes['SpikeTimes']) & (spikes['SpikeTimes'] <= stims.at[i, 'StimOffset'])]
temp['StimPeriod'] = True

(抱歉,它太长了,我不明白为什么它不能工作,所以我确保包含所有内容)。因此,第一行执行必要的计算,但是后面的两行不执行,并且它们还抛出一个警告。现在我可以使用第一行的样式进行多次计算,但这似乎效率不高。有没有办法把想要的视图保存在一个变量中?

d = {'A': [1,3,5,7], 'B': [2,4,6,8]}
df = pd.DataFrame(data=d)
df.loc[(3 <= df['A']) & (df['A'] <= 5), 'A'] = 0
print df
df = pd.DataFrame(data=d)
temp = df.loc[(3 <= df['A']) & (df['A'] <= 5)]
temp['A'] = 0
print df

第一部分会产生预期的效果,第二部分则不会。警告如下:

/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py:8:

SettingWithCopyWarning:正在尝试对DataFrame中切片的副本设置值。尝试使用值,col_indexer = .locrow_indexer

请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

EN

回答 1

Stack Overflow用户

发布于 2018-06-02 02:46:29

我解决了我的问题,不是取原始数据帧的一部分,而是从原始数据帧中获取一组索引,对于这个小示例:

d = {'A': [1,3,5,7], 'B': [2,4,6,8]}
df = pd.DataFrame(data=d)
temp = (df.loc[:,'A'] >= 3) & (df.loc[:,'A'] <= 5)
df.loc[temp,'A'] = 0
print df

给出了预期的结果,我可以想象有更好的解决方案,但它不再是完全可怕的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50645098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档