小编kni*_*fni的帖子

Python/Pandas:数据帧索引中有多少级别?

我需要知道数据帧中有多少级别,而不知道该数据帧是否具有多索引或"正常"索引.

假设有一个数据帧df和一个nb_levels保存结果的变量,如果数据帧有多索引,我可以执行以下操作:

>>> nb_levels = len(df.index[0])    
nb_levels = 2
Run Code Online (Sandbox Code Playgroud)

假设一个2级多指数

所以我可以得到我想要的结果:

try:
    df.index.get_level_values(1)
    nb_levels = 1
except:
    nb_levels = len(df.index[0])
Run Code Online (Sandbox Code Playgroud)

但这感觉就像一个可怕的黑客,当然必须有简单的方法来获得这个结果.问题是我似乎无法找到它.救命 ?

python pandas

9
推荐指数
1
解决办法
9085
查看次数

从 .zshrc 导出 PYTHONPATH 不起作用

我试图从 .zshrc 导出 PYTHONPATH 环境变量,但失败了。

.zshrc 中的相关行

PYTHONPATH="/Users/nicolas/Code:/Users/nicolas/Code/Dashboard"
export $PYTHONPATH
Run Code Online (Sandbox Code Playgroud)

** 从命令行 **

1]测试一

echo $PYTHONPATH
/Users/nicolas/Code:/Users/nicolas/Code/Dashboard
Run Code Online (Sandbox Code Playgroud)

似乎有效

2]测试二

`sh -c 'echo "$PYTHONPATH"' `
==> empty output
Run Code Online (Sandbox Code Playgroud)

实际上没有

3]测试三

使用以下命令运行以下 python 脚本python script.py

#!/usr/bin/env python
import os
try:
    user_paths = os.environ['PYTHONPATH'].split(os.pathsep)
except KeyError:
    user_paths = 'no pythonpath'
print user_paths
Run Code Online (Sandbox Code Playgroud)

输出:没有 pythonpath

再次失败

4]测试四

zsh -x -c 'echo moo'

+/etc/zshenv:2> [ -x /usr/libexec/path_helper ']'
+/etc/zshenv:3> /usr/libexec/path_helper -s
+/etc/zshenv:3> eval 'PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/X11/bin:/usr/texbin:/Users/nicolas/anaconda/bin:/opt/local/lib/postgresql93/bin:/Users/nicolas/Code/games:/Users/nicolas/Code/Dashboard";' export 'PATH;'
+(eval):1> PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/X11/bin:/usr/texbin:/Users/nicolas/anaconda/bin:/opt/local/lib/postgresql93/bin:/Users/nicolas/Code/games:/Users/nicolas/Code/Dashboard
+(eval):1> export PATH
+zsh:1> echo moo …
Run Code Online (Sandbox Code Playgroud)

shell zsh zshrc python-2.7

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

无法将 Pandas 数据框导出到 excel/编码

由于一些编码困难,我无法导出我的数据帧之一。

sjM.dtypes

Customer Name              object
Total Sales               float64
Sales Rank                float64
Visit_Frequency           float64
Last_Sale          datetime64[ns]
dtype: object
Run Code Online (Sandbox Code Playgroud)

csv 导出工作正常

path = 'c:\\test'
sjM.to_csv(path + '.csv')   # Works
Run Code Online (Sandbox Code Playgroud)

但excel导出失败

sjM.to_excel(path + '.xls')

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "testing.py", line 338, in <module>
    sjM.to_excel(path + '.xls')
  File "c:\Anaconda\Lib\site-packages\pandas\core\frame.py", line 1197, in to_excel
    excel_writer.save()
  File "c:\Anaconda\Lib\site-packages\pandas\io\excel.py", line 595, in save
    return self.book.save(self.path)
  File "c:\Anaconda\Lib\site-packages\xlwt\Workbook.py", line 662, in save
    doc.save(filename, self.get_biff_data())
  File "c:\Anaconda\Lib\site-packages\xlwt\Workbook.py", line 637, in get_biff_data …
Run Code Online (Sandbox Code Playgroud)

python xlwt pandas

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

unicode字符串中有多少可显示的字符(日文/中文)

我需要知道包含日文/中文字符的unicode字符串中有多少可显示的字符.

示例代码使问题非常明显:

# -*- coding: UTF-8 -*-
str = '\xe7\x9d\xa1\xe7\x9c\xa0\xe6\x99\x82\xe9\x96\x93'
print len(str)
Run Code Online (Sandbox Code Playgroud)

12

print str
Run Code Online (Sandbox Code Playgroud)

睡眠时间<<<注意显示四个字符

从字符串中我怎么知道将要显示4个字符?

python unicode

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

标签 统计

python ×3

pandas ×2

python-2.7 ×1

shell ×1

unicode ×1

xlwt ×1

zsh ×1

zshrc ×1