这是一个非常简单实用的问题.我觉得它必须是一个愚蠢的细节,应该有类似的问题.我无法找到他们.如果有人,我会高兴地删除这个.
我发现的最接近的是: pandas:用loc迭代DataFrame索引
如何仅在索引为日期和时间时基于时间选择pandas数据帧中的行
无论如何,事情是,我有一个datetime索引的熊猫数据帧如下:
In[81]: y
Out[81]:
PETR4 CSNA3 VALE5
2008-01-01 0.0 0.0 0.0
2008-01-02 1.0 1.0 1.0
2008-01-03 7.0 7.0 7.0
In[82]: y.index
Out[82]: DatetimeIndex(['2008-01-01', '2008-01-02', '2008-01-03'], dtype='datetime64[ns]', freq=None)
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我无法使用以下方法之一访问其值:
In[83]: y[datetime.datetime(2008,1,1)]
In[84]: y['2008-1-1']
In[85]: y['1/1/2008']
Run Code Online (Sandbox Code Playgroud)
我收到了KeyError错误.
更奇怪的是,以下方法可行:
In[86]: y['2008']
Out[86]:
PETR4 CSNA3 VALE5
2008-01-01 0.0 0.0 0.0
2008-01-02 1.0 1.0 1.0
2008-01-03 7.0 7.0 7.0
In[87]: y['2008-1']
Out[87]:
PETR4 CSNA3 VALE5
2008-01-01 0.0 0.0 0.0
2008-01-02 1.0 1.0 1.0
2008-01-03 7.0 7.0 7.0
Run Code Online (Sandbox Code Playgroud)
我对熊猫很新,所以也许我在这里错过了一些东西?
这可能是一个枯燥的问题,但我真的没有找到答案.
我正在尝试从浏览器版本迁移到IPython笔记本的PyCharm.事情是我找不到与浏览器版本相同的"全部运行".我每次必须逐个细胞运行吗?
谢谢 !
我对 LaTeX 及其发行版很陌生,所以这可能是一个非常新手的问题。
我正在关注本教程,但无法编译该文档。到目前为止的代码非常简单,我认为没有任何错别字,而且我在论坛中也没有找到类似的问题。
有人可以指出我正确的方向吗?
我使用的是 Windows XP 并且我已经安装了 TexMaker 4.4.1 在这里找到
我到目前为止的代码很简单:
\documentclass[11pt]{文章}
\begin{文档}
这是我的第一个 LaTeX 文档。
\end{文档}
我得到的错误是:
无法启动命令。pdflatex -synctex=1 -interaction=nonstopmode %.tex
干杯!
简单实用的问题,但我找不到解决方案.
我看过的问题如下:
使用pandas将列从一个DataFrame复制到另一个DataFrame的最快方法?
这些与我之间的关键区别在于我不需要插入单个值,而是插入一行.
我的问题是,我拿起一行数据帧,比方说df1.因此我有一个系列.
现在我有了这个其他数据框,df2我根据标准选择了多行,我想将该系列复制到所有那些行.
DF1:
Index/Col A B C
1 0 0 0
2 0 0 0
3 1 2 3
4 0 0 0
Run Code Online (Sandbox Code Playgroud)
DF2:
Index/Col A B C
1 0 0 0
2 0 0 0
3 0 0 0
4 0 0 0
Run Code Online (Sandbox Code Playgroud)
我想要完成的是将df1 [3]插入到行df2 [2]和df3 [3]中.所以像非工作代码:
series = df1[3]
df2[df2.index>=2 and df2.index<=3] = series
Run Code Online (Sandbox Code Playgroud)
回国
DF2:
Index/Col A B C
1 0 0 0
2 1 …Run Code Online (Sandbox Code Playgroud) 到目前为止,我已经看过这个和这个问题,但它们并没有真正帮助我解决我的问题.
问题很简单,但有点难以言辞.
我有一个像以下矩阵的Dataframe:
Stock1 Stock2
Date1 3 4
Date2 1 4
Run Code Online (Sandbox Code Playgroud)
对于每个日期,这是我的索引,我想将值与系列中的单个点进行比较.
是这样的系列:
Value
Date1 2
Date2 3
Run Code Online (Sandbox Code Playgroud)
我想从比较DataFrame> Series中构建以下DataFrame
Stock1 Stock2
Date1 True True
Date2 False True
Run Code Online (Sandbox Code Playgroud)
因此,Date1两个值都大于2,并且Date2仅Stock2大于3.
提前致谢
我正在使用R包TraMineR进行一些学术研究序列分析.
我想找到一个模式,定义为某人在目标公司,然后出去,然后回到目标公司.
(简化)我将州A定义为目标公司; B作为外部工业公司,C作为内部工业公司.
所以我想要做的是找到具有特定模式ABA或ACA的序列.
在查看这个问题(奇怪的子序列数?)并阅读用户指南后,特别是以下段落:
4.3.3子序列如果u的所有连续元素ui以相同的顺序出现在x中,则序列u是x的子序列,我们简单地用u x表示.根据这个定义,非共享>状态可以出现在序列u和x的共同序列之间.例如,u = S; M是x = S的>子序列; U; 米; MC.
和
7.3.2查找具有给定子序列的序列seqpm()函数计算包含给定子序列的序列数并收集其行索引号.该函数返回一个包含两个元素的列表.第一个元素MTab只是一个表,其中包含数据中给定子序列的出现次数.请注意,即使子序列在序列中出现多次,每个序列也只计算一次出现次数.列表的第二个元素MIndex给出包含子序列的序列的行索引号.这些索引号可用于访问相关序列(下面的示例).由于在字符串中搜索模式更容易,因此当使用带有TRUE选项的seqconc函数时,函数rst以此格式转换序列数据.
我得出结论,seqpm()是我完成工作所需的功能.
所以我的序列如下:AAAAABBBBBAAAAA
而且,根据我在mentiod源上找到的子序列的定义,我想我可以通过使用以下方式找到这种序列:
seqpm(sequence,"ABA")
Run Code Online (Sandbox Code Playgroud)
但这不会发生.为了找到我需要输入的示例序列
seqpm(sequence,"ABBBBBA")
Run Code Online (Sandbox Code Playgroud)
这对我需要的东西不是很有用.
非常感谢 !
我无法导入 plotly.figure_factory
我使用的代码基于这个例子
该模块由以下代码段导入:
import plotly.plotly as py
import plotly.figure_factory as FF
Run Code Online (Sandbox Code Playgroud)
我figure_factory在plotly网站上找不到任何文件.
有任何想法吗 ?
基于对答案这个问题,我试图用line_profiler用cythonized功能.
在上述问题上,接受的答案为我们提供了一个如何在jupyter笔记本中使用它的例子.
但是,当我尝试pyx使用disutils 构建文件时,它不起作用.
我明确地尝试使用脚本来运行
kernprof -l -v script.py
Run Code Online (Sandbox Code Playgroud)
它只返回Timer unit经过的时间.
如果我尝试使用cython文件修饰函数@profile,它不会编译返回:
undeclared name not builtin: profile
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
经过研究,我在这个论坛或任何其他论坛上都没有发现类似的问题。
我正在按其内部级别对 MultiIndex 数据帧进行分组。问题是,在按分组分组后,我仍然想知道在这个内部索引上哪些是“选择的值”。
所以我有这样的东西
df = pd.DataFrame([['A', 1, 3],
['A', 2, 4],
['A', 3, 6],
['B', 1, 9],
['B', 2, 10],
['B', 4, 6]],
columns=pd.Index(['Name', 'Date', 'Value'], name='ColumnName')
).set_index(['Name', 'Date'])
ColumnName Value
Name Date
A 1 3
2 4
3 6
B 1 9
2 10
4 6
Run Code Online (Sandbox Code Playgroud)
我想要的是
ColumnName Value
Name Date
A 3 6
B 4 6
Run Code Online (Sandbox Code Playgroud)
我能够做的是使用这个命令:
df.groupby(level=('Name')).last()
Run Code Online (Sandbox Code Playgroud)
正在检索这个:
ColumnName Value
Name
A 6
B 6
Run Code Online (Sandbox Code Playgroud)
或者,通过使用此命令:
df.groupby(level=('Name','Date')).last()
Run Code Online (Sandbox Code Playgroud)
检索错误。
请记住,这是一个性能敏感的应用程序。
想法?
编辑:同时我确实在 GitHub 上提交了一个 …
到目前为止,我已经找到了这个问题,但由于以下事实,它并没有解决我的问题:
len()我有以下DataFrame
Outer Inner Value
A 1 2.000000
A 2 4.000000
A 3 6.000000
A 4 8.000000
B 1 3.000000
B 2 6.000000
B 3 9.000000
B 4 12.000000
B 5 15.000000
Run Code Online (Sandbox Code Playgroud)
我想以outer非重叠的方式对每个值的最后两个值求和.因此,A我想要求和inner3 + 4,1 + 2.因为B我想求和inner4 + 5,2 + 3.注意,成对和应该从最后一个值开始.导致
Outer Inner Value
A 2 6.000000
A 4 14.000000
B 3 15.000000
B 5 27.000000
Run Code Online (Sandbox Code Playgroud)