我需要知道数据帧中有多少级别,而不知道该数据帧是否具有多索引或"正常"索引.
假设有一个数据帧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)
但这感觉就像一个可怕的黑客,当然必须有简单的方法来获得这个结果.问题是我似乎无法找到它.救命 ?
我试图从 .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) 由于一些编码困难,我无法导出我的数据帧之一。
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) 我需要知道包含日文/中文字符的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个字符?