小编Joo*_*oop的帖子

获取列表到pandas DataFrame的列表

我正在将电子表格的内容读入熊猫.DataNitro有一个方法,它返回一个矩形的单元格选择列表.所以

table = Cell("A1").table
Run Code Online (Sandbox Code Playgroud)

table = [['Heading1', 'Heading2'], [1 , 2], [3, 4]]

headers = table.pop(0) # gives the headers as list and leaves data
Run Code Online (Sandbox Code Playgroud)

我正在忙着编写代码来翻译它,但我的猜测是,它是如此简单的使用,必须有方法来做到这一点.似乎无法在文档中找到它.任何指向方法的指针都会简化这个?

python pandas datanitro

162
推荐指数
3
解决办法
18万
查看次数

自上次保存以来的Sublime Text编辑

似乎无法在网上找到任何东西.经常花时间同时编辑多个文本文档,并忽略我编辑过的文档.当我关闭时,我并不总是确定我是否故意更改或意外编辑了文件中的字符.很高兴有一个功能来显示自上次保存sublime文本以来的编辑.

看起来像是一个显而易见的需求,我很惊讶我找不到任何功能.我错过了什么,或者我是唯一有这种需求的人吗?

sublimetext2

33
推荐指数
4
解决办法
1万
查看次数

格式化latex(to_latex)输出

我已经阅读过该to_latex方法,但目前尚不清楚如何使用formatters参数.

我有一些太长的数字,有些我想要一千个分隔符.

对于多索引表的方法的一个侧面问题to_latex,索引被一起解析并且它&在乳胶输出中发出一些s.

python latex pandas

14
推荐指数
1
解决办法
8837
查看次数

对Pandas Dataframe行进行求和

我有一个记录的DataFrame看起来像这样:

stocks = pd.Series(['A', 'A', 'B', 'C', 'C'], name = 'stock')
positions = pd.Series([ 100, 200, 300, 400, 500], name = 'positions')
same1 = pd.Series(['AA', 'AA', 'BB', 'CC', 'CC'], name = 'same1')
same2 = pd.Series(['AAA', 'AAA', 'BBB', 'CCC', 'CCC'], name = 'same2')
diff = pd.Series(['A1', 'A2', 'B3' ,'C1', 'C2'], name = 'different')
df = pd.DataFrame([stocks, same1, positions, same2, diff]).T
df
Run Code Online (Sandbox Code Playgroud)

这给出了一个看起来像的pandas DataFrame

      stock same1 positions same2 different
0     A    AA       100   AAA        A1
1     A    AA       200   AAA        A2
2 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

10
推荐指数
1
解决办法
9387
查看次数

随机行走熊猫

我正在尝试在熊猫中快速创建模拟随机游走系列.

import pandas as pd
import numpy as np
dates = pd.date_range('2012-01-01', '2013-02-22')
y2 = np.random.randn(len(dates))/365
Y2 = pd.Series(y2, index=dates)
start_price = 100
Run Code Online (Sandbox Code Playgroud)

我想在开始日期从start_price开始构建另一个日期系列,并以随机增长率增长.伪代码:

P0 = 100
P1 = 100 * exp(Y2)
P2 = P1 * exp(Y2)
Run Code Online (Sandbox Code Playgroud)

在excel中很容易做到,但我不能想到这样做的方式而不用pandas迭代数据帧/系列,我也碰到了这样做.

试过:

p = Y2.apply(np.exp)-1
y = p.cumsum(p)
y.plot()
Run Code Online (Sandbox Code Playgroud)

这应该从开始以来给出累积的复合回报

python pandas random-walk

8
推荐指数
1
解决办法
2882
查看次数

Pandas Dataframe对象类型Fillna异常在不同数据类型上

对于不同的列,我有一个具有不同dtypes的Pandas Dataframe。例如df.dtypes返回以下内容。

Date                    datetime64[ns]
FundID                           int64
FundName                        object
CumPos                           int64
MTMPrice                       float64
PricingMechanism                object
Run Code Online (Sandbox Code Playgroud)

各种奶酪柱中都有缺失值。使用适当的NaN值对其执行组操作会导致问题。用.fillna()方法摆脱它们是显而易见的选择。问题是字符串明显是.fillna(“”),而.fillna(0)是整数和浮点数的正确选择。在DataFrame上使用这两种方法都会引发异常。除了单独进行处理(大约有30列)之外,还有其他优雅的解决方案吗?我有很多代码取决于DataFrame,并且不希望不重新输入列,因为这很可能会破坏其他逻辑。可以做:

df.FundID.fillna(0)
df.FundName.fillna("")
etc
Run Code Online (Sandbox Code Playgroud)

python pandas

7
推荐指数
2
解决办法
3046
查看次数

用熊猫总结几个月

我知道有一个简单的实现,但我不记得语法.有一个简单的熊猫时间序列,我想按月汇总数据.具体来说,我想在数月和数年内添加数据以获得一些摘要.可以用切片编写它,但我记得看到自动执行它的语法.

import pandas as pd
df = Series(randn(100), index=pd.date_range('2012-01-01', periods=100))
Run Code Online (Sandbox Code Playgroud)

具有年份和子指数的多指数系列将成为一等奖.

部分答案:

ds.resample('M', how=sum)  # for calendar monthly
ds.resample('A', how=sum)  # for calendar yearly
Run Code Online (Sandbox Code Playgroud)

任何想法如何优雅地获得年度多指数?

python time-series pandas

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

Excel VBA函数用于查找Cell范围中的值

我知道如何使用match和index在excel中执行此操作.我的电子表格有很多这些查找,但必须易于审核.

在纯excel公式中,它很简单:

=index(match()...match()) of the table
Run Code Online (Sandbox Code Playgroud)

虽然容易做到,但如果表的大小发生变化等,它会产生很大的影响.公式的可读性也很差.表格以及标题和列的命名范围使得进行故障排除变得更加困难.

      Col1  Col2    Col3
Row1    1   2   3
Row2    4   5   6
Row3    7   8   9
Run Code Online (Sandbox Code Playgroud)

我命名此范围,行和列名称分别为第一行和第一列.

所以Excel变量将被称为test_table.

想写一个我可以调用的VBA函数:

=VBAlookup("Row2", "Col2", test_table)
returns 5
Run Code Online (Sandbox Code Playgroud)

我正在使用python与DataNitro和pandas轻松地进行拼接.不擅长VBA,所以在VBA中写这篇文章需要花费很长时间.当然,我不是第一个或只是寻找这个功能,但谷歌搜索似乎没有让我到任何地方.

不想回答我自己的问题,但到目前为止我的解决方案(改编自@John Bustos的答案如下)是:

Public Function VBAlookup(RowName As Variant, ColName As Variant, Table As Range) As Variant

Dim RowNum As Integer
Dim ColNum As Integer

    VBAlookup = "Not Found"

    For RowNum = 1 To Table.Rows.Count
        If Table.Cells(RowNum, 1) = RowName Then
            For ColNum = 1 To Table.Columns.Count
                If Table.Cells(1, ColNum) = …
Run Code Online (Sandbox Code Playgroud)

excel vba

6
推荐指数
1
解决办法
3万
查看次数

分配给pandas DataFrames切片

我正在尝试计算任何给定日期的生效日期。数据框有一个由BMonthEnd填充的列(考虑假期的月份的最后一个工作日-通过此处未显示的代码计算)

下面显示的部分数据框的有效日期等于第一步的日期

            Date        BMonthEnd   EffectiveDate
2014-08-24  2014-08-24  2014-08-29  2014-08-24
2014-08-25  2014-08-25  2014-08-29  2014-08-25
2014-08-26  2014-08-26  2014-08-29  2014-08-26
2014-08-27  2014-08-27  2014-08-29  2014-08-27
2014-08-28  2014-08-28  2014-08-29  2014-08-28
2014-08-29  2014-08-29  2014-08-29  2014-08-29
2014-08-30  2014-08-30  2014-08-29  2014-08-30
2014-08-31  2014-08-31  2014-08-29  2014-08-31
Run Code Online (Sandbox Code Playgroud)

我现在尝试选择需要更改的数据:

df[~(df.Date<df.BMonthEnd)].EffectiveDate  # giving the expected slice
# but 
df[~(df.Date<df.BMonthEnd)].EffectiveDate = 1
# gives error

SettingWithCopyWarning: A value is trying to be set on a copy of a slice
from a DataFrame. Try using .loc[row_index,col_indexer] = value instead
self[name] = value
Run Code Online (Sandbox Code Playgroud)

在警告之后,我尝试了尝试的替代方法:

df.loc[~(df.Date<df.BMonthEnd)].EffectiveDate …
Run Code Online (Sandbox Code Playgroud)

python pandas

6
推荐指数
1
解决办法
3043
查看次数

Pandas DataFrame格式化

我有一个带有混合值的pandas DataFrame.我正在开发Ipython笔记本时使用它.显示数据帧时,我希望它显示,以方便阅读.目前我正在使用python字符串格式化显示所有浮点数到4位小数并添加千位分隔符.

pd.options.display.float_format = '{:,.4f}'.format
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想Eg显示值超过10000没有小数,分数有4位有效数字等.有没有办法,我可以使用python字符串格式化语法来实现这一点?我知道我可以为个人专栏做这件事,但我期待这纯粹用于笔记本内的显示器?

python string-formatting pandas

4
推荐指数
1
解决办法
2333
查看次数