我意识到Dataframe采用了{'series_name':Series(data,index)}的映射.但是,即使地图是OrderedDict(),它也会自动对该地图进行排序.
是否有一种简单的方法来传递Series(data,index,name = name)列表,以便保留订单并且列名是series.name?如果所有系列的所有指数都相同,是否有一种简单的方法?
我通常只是通过传递一个numpy column_stack的series.values并指定列名来实现这一点.但是,这很难看,在这种特殊情况下,数据不是字符串浮动.
了解以下不是真正的常量,尝试遵循PEP 8我想在 Python 3.7 的 @dataclass 中创建一个“常量”。
@dataclass
class MyClass:
data: DataFrame
SEED = 8675309 # Jenny's Constant
Run Code Online (Sandbox Code Playgroud)
我的代码曾经是:
class MyClass:
SEED = 8675309 # Jenny's Constant
def __init__(data):
self.data = data
Run Code Online (Sandbox Code Playgroud)
这两个在处理种子方面是等效的吗?种子现在是 init/eq/hash 的一部分吗?这些常量是否有首选样式?
在使用Pandas之前写入csv时,我经常会使用以下格式来表示百分比:
'%0.2f%%' % (x * 100)
Run Code Online (Sandbox Code Playgroud)
加载csv时,这将由Excel正确处理.
现在,我正在尝试使用Pandas的to_excel函数并使用
(simulated * 100.).to_excel(writer, 'Simulated', float_format='%0.2f%%')
Run Code Online (Sandbox Code Playgroud)
并得到一个"ValueError:float()的无效文字:0.0126%".没有'%%'它写得很好,但没有格式化为百分比.
有没有办法在Pandas的to_excel中写入百分比?
这个问题在这一点上都很古老.有关更好的解决方案,请查看使用pandas的xlsxwriter.
我有一个excel文件自动生成偶尔非常大的数字,如135061808695.在excel文件中,当您单击单元格时,它会显示完整的数字,135061808695但在视觉上使用自动"常规"格式,数字显示为1.35063E+11.
当我ExcelFile在Pandas中使用时,它会以科学记数法1.350618e+11而不是完整的值来提取值135061808695.有没有办法让Pandas在不搞乱excel文件的情况下提取全部价值?
Pandas目前允许您在指定日期添加工作日datetime.today() + 3*BDay().我想扩展一个工作日的想法,以排除给定的假期和周末的DateIndex.这是否可能将DateIndex合并到偏移中?
有没有一种方法(比使用for循环更有效)用其各自行中的最大值替换Pandas DataFrame中的所有空值。
在 1.2 SciPy 添加了拟合 Levy-Stable 分布的能力。我有一些我想适合的发行版,但我在让适合运行时遇到了一些问题。
这是我的测试用例:
points = 1000
jennys_constant = 8675309
alpha, beta = 1.8, -0.5
draw = levy_stable.rvs(alpha, beta, size=points, random_state=jennys_constant)
print(levy_stable.fit(draw))
Run Code Online (Sandbox Code Playgroud)
我觉得如果我从 Levy-Stable 分布中抽取,我应该能够很容易地适应该抽取。但是,我收到了很多如下警告,并且问题在 1000 点上花费了很长时间。
C:\anaconda3\lib\site-packages\scipy\stats\_continuous_distns.py:3857: IntegrationWarning: The integral is probably divergent, or slowly convergent.
intg = integrate.quad(f, -xi, np.pi/2, **intg_kwargs)[0]
Run Code Online (Sandbox Code Playgroud)
我是否错误地设置了问题?的SciPy的文档是关于该主题的位薄。
我在拟合我的真实世界数据时遇到了类似的问题。
我有一个带有三级列MultiIndex的时间序列excel文件,如果可能的话我想成功解析.关于如何对堆栈溢出的索引执行此操作有一些结果但不是列,并且该parse函数具有header似乎不占用行列表的结果.
ExcelFile看起来像如下所示:
所以有两个low_level值很多mid_level值和一些top_level值,但诀窍是顶级和中级值为空,并假设为左侧的值.因此,例如,上面的所有列都将top_level1作为顶部多索引值.
到目前为止,我最好的想法是使用transpose,但它Unnamed: #到处填充,似乎不起作用.在Pandas中,0.13 read_csv似乎有一个header可以列出的参数,但这似乎不起作用parse.
我有一个数据框,我们可以通过
df = pd.DataFrame({'a':[1,0,0], 'b':[0,1,0], 'c':[1,0,0], 'd':[2,3,4]})
Run Code Online (Sandbox Code Playgroud)
和一个类别系列
category = pd.Series(['A', 'B', 'B', 'A'], ['a', 'b', 'c', 'd'])
Run Code Online (Sandbox Code Playgroud)
我想将df列的总和分为“ A”,“ B”类别。也许像:
result = df.groupby(??, axis=1).sum()
Run Code Online (Sandbox Code Playgroud)
返回
result = pd.DataFrame({'A':[3,3,4], 'B':[1,1,0]})
Run Code Online (Sandbox Code Playgroud) 我有一个大小合理的时间序列数据 DataFrame,并且我希望以合理的格式滚动成对相关数据。
Pandas 有一个非常有趣的“滚动”功能,可以进行正确的计算
dfCorrelations = dfReturns.rolling(correlation_window).corr()
Run Code Online (Sandbox Code Playgroud)
但相关网格的输出时间序列对我以后的使用不方便(显示给定日期的子集的示例输出)。
有没有办法进行相同的计算,但在简单的时间序列 DataFrame 中获取仅具有唯一的非对角相关性的输出?用看起来像这样的列索引说
['III LN x ABN NA', 'III LN x AGN NA', 'III LN x AGS BB', 'ABN NA x AGN NA', 'ABN NA x AGS BB', ...]
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 xlsxwriter 左对齐单行。我尝试了以下方法,但它不起作用。我该怎么做?
stats = DataFrame(...)
xl_writer = ExcelWriter(r'U:\temp\test.xlsx')
stats.to_excel(xl_writer, 'Stats')
workbook = xl_writer.book
format_header = workbook.add_format({'align': 'left'})
stats_sheet = xl_writer.sheets['Stats']
stats_sheet.set_row(0, None, format_header)
Run Code Online (Sandbox Code Playgroud) xlwings 是否可以在从 VBA 运行脚本时弹出控制台并显示标准输出?
我知道 xlwings 将标准输出写入日志文件,这很有用,但我想在用户等待计算完成时为他们提供一些更新。调试器可以做到这一点,但似乎有点矫枉过正。
python ×11
pandas ×9
dataframe ×2
excel ×2
parsing ×2
console ×1
constants ×1
correlation ×1
formatting ×1
missing-data ×1
numpy ×1
python-3.7 ×1
scipy ×1
statistics ×1
stdout ×1
time-series ×1
vba ×1
xlsxwriter ×1
xlwings ×1