小编der*_*ojo的帖子

将pandas DataFrame制作成dict和dropna

我有一些带有NaNs的pandas DataFrame.像这样:

import pandas as pd
import numpy as np
raw_data={'A':{1:2,2:3,3:4},'B':{1:np.nan,2:44,3:np.nan}}
data=pd.DataFrame(raw_data)
>>> data
   A   B
1  2 NaN
2  3  44
3  4 NaN
Run Code Online (Sandbox Code Playgroud)

现在我想用它制作一个字典,同时删除NaN.结果应如下所示:

{'A': {1: 2, 2: 3, 3: 4}, 'B': {2: 44.0}}
Run Code Online (Sandbox Code Playgroud)

但是使用pandas to_dict函数给我一个这样的结果:

>>> data.to_dict()
{'A': {1: 2, 2: 3, 3: 4}, 'B': {1: nan, 2: 44.0, 3: nan}} 
Run Code Online (Sandbox Code Playgroud)

那么如何从DataFrame中制作一个字典并摆脱NaN?

python pandas

14
推荐指数
6
解决办法
5440
查看次数

ImportError:没有名为_gdbm的模块matplotlib pickle

因为matplotlib 1.3 matplotlib数字是可以腌制的

当我尝试在stackoverflow上找到一个例子时:

import matplotlib.pyplot as plt
import numpy as np
import pickle

ax = plt.subplot(111)
x = np.linspace(0, 10)
y = np.exp(x)
plt.plot(x, y)
pickle.dump(ax, file('myplot.pickle', 'w'))
Run Code Online (Sandbox Code Playgroud)

来源:存储并重新加载matplotlib.pyplot对象

我收到以下错误:

Traceback (most recent call last):
  File "D:/Work/Programming/Experimental/picklematplotlib/main.py", line 15, in <module>
    pickle.dump(ax, file)
  File "C:\Python32\lib\site-packages\six.py", line 116, in __getattr__
    _module = self._resolve()
  File "C:\Python32\lib\site-packages\six.py", line 105, in _resolve
    return _import_module(self.mod)
  File "C:\Python32\lib\site-packages\six.py", line 76, in _import_module
    __import__(name)
  File "C:\Python32\lib\dbm\gnu.py", line 3, in <module>
    from _gdbm import *
ImportError: …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

python winapi 检查工作表是否存在

我正在使用这个:

from win32com.client import Dispatch
excel_file = Dispatch("Excel.Application")
excel_file.Workbooks.Open(excel_result_path)
excel_file.Visible = 1
mySheet = excel_file.Worksheets.Add()
mySheet.Name = "name"
Run Code Online (Sandbox Code Playgroud)

效果很好。唯一的问题是,如果工作表已经存在,我会收到一条错误消息,告诉我该工作表已经存在

文件“..\dynamic.py”,第 554 行,setattr pywintypes.com_error : (-2147352567, 'Ausnahmefehler aufgetreten.', (0, 'Microsof t Excel', 'Kann einem Blatt nicht den gleichen Namen geben wie einem anderen Bla tt,einer Objektbibliothek oder einer Arbeitsmappe,auf die Visual Basic Bezug n immt。','xlmain11.chm',0,-2146827284),无)

所以我的问题是,如何检查 excel-sheet-name allready 是否存在?

python excel winapi

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

标签 统计

python ×3

excel ×1

matplotlib ×1

pandas ×1

winapi ×1