小编unu*_*tbu的帖子

用Python确定JPG质量(PIL)

我正在使用Python中的PIL库,我想知道如何确定给定JPG图像的质量.我尝试打开JPG图像做一些事情,并以原始质量再次保存.Image.save让我确定所需的质量:

im.save(name, quality = x)  
Run Code Online (Sandbox Code Playgroud)

但我看不出任何提取原始的方法.现在我只是猜测并尝试通过对'质量'参数进行二进制搜索来获得与输入大小相同的输出文件,但这是不可接受的长期解决方案:)
我也尝试使用:Image.info但我的大多数图像在那里没有任何有用的信息(例如:'adobe','icc_profile','exif','adobe_transform')
帮助!

python jpeg image

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

无法使用Python的MySQLdb连接到localhost

我是新手,所以可能有错误的术语,但是当我运行以下脚本时:

import MySQLdb

conn = MySQLdb.connect (host = 'localhost',
   user = 'erin',
   passwd = 'erin',
          db = 'sec')
Run Code Online (Sandbox Code Playgroud)

我收到错误:

  File "/Library/Python/2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/Library/Python/2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg/MySQLdb/connections.py", line 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")
Run Code Online (Sandbox Code Playgroud)

该目录中没有名为mysql.sock的文件,但我不知道套接字是什么或如何使用MySQLdb模块为它指定正确的位置.

python mysql connect

17
推荐指数
3
解决办法
2万
查看次数

将python数据帧转换为列表

我有一个包含多列的Python dataFrame.

  LogBlk    Page                                    BayFail       
  0          0                                 [0, 1, 8, 9]  
  1          16           [0, 1, 4, 5, 6, 8, 9, 12, 13, 14]  
  2          32           [0, 1, 4, 5, 6, 8, 9, 12, 13, 14]  
  3          48           [0, 1, 4, 5, 6, 8, 9, 12, 13, 14]  
Run Code Online (Sandbox Code Playgroud)

我想找到与LogBlk = 0和Page = 0相关联的BayFails.

df2 = df[ (df['Page'] == 16) & (df['LogBlk'] == 0) ]['BayFail']
Run Code Online (Sandbox Code Playgroud)

这将返回[0,1,8,9]

我想要做的是将此pandas.series转换为列表.有谁知道这是怎么做到的吗?

python python-2.7 python-3.x pandas

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

按值范围对数据进行分组

我有一个csv文件,显示订单中的零件.列包括天晚,数量和商品.

我需要将数据分组数天,将商品与数量之和进行分组.然而,延迟的日子需要分为几个范围.

>56
>35 and <= 56
>14 and <= 35
>0 and <=14
Run Code Online (Sandbox Code Playgroud)

我希望我可以使用一个字典.像这样的东西

{'Red':'>56,'Amber':'>35 and <= 56','Yellow':'>14 and <= 35','White':'>0 and <=14'}
Run Code Online (Sandbox Code Playgroud)

我正在寻找这样的结果

        Red  Amber  Yellow  White
STRSUB  56   60     74      40
BOTDWG  20   67     87      34
Run Code Online (Sandbox Code Playgroud)

我是熊猫的新手,所以我不知道这是否可行.谁能提供一些建议.

谢谢

python-2.7 pandas

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

从大文件中分块数据进行多处理?

我正在尝试使用多处理并行化应用程序,该应用程序接收一个非常大的csv文件(64MB到500MB),一些工作逐行,然后输出一个小的,固定大小的文件.

目前我做了一个list(file_obj),不幸的是,它被完全加载到内存中(我认为)然后我将该列表分成n个部分,n是我想要运行的进程数.然后我pool.map()在破碎的清单上做了一个.

与单线程,只是打开文件和迭代的方法相比,这似乎有一个非常非常糟糕的运行时.有人可以建议更好的解决方案?

另外,我需要以组的形式处理文件的行,这些行保留了某个列的值.这些行组本身可以拆分,但任何组都不应包含此列的多个值.

python parallel-processing

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

Python迭代非序列

我有这段代码创建一个笔记并添加到笔记本中.当我运行这个时,我得到一个非序列错误的迭代.

import datetime
class Note:
    def __init__(self, memo, tags):
        self.memo = memo
        self.tags = tags
        self.creation_date = datetime.date.today()

def __str__(self):
    return 'Memo={0}, Tag={1}'.format(self.memo, self.tags)


class NoteBook:
     def __init__(self):
        self.notes = []

     def add_note(self,memo,tags):
        self.notes.append(Note(memo,tags))

if __name__ == "__main__":
    firstnote = Note('This is my first memo','example')
    print(firstnote)
    Notes = NoteBook()
    Notes.add_note('Added thru notes','example-1')
    Notes.add_note('Added thru notes','example-2')
    for note in Notes:
        print(note.memo)
Run Code Online (Sandbox Code Playgroud)

错误:

C:\Python27\Basics\OOP\formytesting>python notebook.py  
Memo=This is my first memo, Tag=example  
Traceback (most recent call last):  
  File "notebook.py", line 27, in …

python

16
推荐指数
2
解决办法
5万
查看次数

numpy.searchsorted的性能在结构化数组上很差

提前抱歉,如果我误用了任何条款,请随时纠正.

我有一个排序数组dtype '<f16, |S30'.当我searchsorted在它的第一个字段上使用时,它的工作速度非常慢(对于300万个项目,大约需要0.4秒).这比bisect在元组的普通Python列表上做同样的事情要长得多.

%timeit a['f0'].searchsorted(400.)
1 loops, best of 3: 398 ms per loop
Run Code Online (Sandbox Code Playgroud)

但是,如果我将float部分复制到另一个单独的数组,则搜索速度快于bisect:

b = a['f0'].copy()

%timeit b.searchsorted(400.)
1000000 loops, best of 3: 945 ns per loop
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 我做错了什么还是在NumPy中回归?
  2. 有没有办法绕过这个而不重复数据?

python arrays numpy binary-search

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

在Tkinter中调整PIL中的图片大小

我目前正在使用PIL在Tkinter中显示图像.我想暂时调整这些图像的大小,以便更容易地查看它们.我怎么能这样做?

片段:

self.pw.pic = ImageTk.PhotoImage(Image.open(self.pic_file))
self.pw.pic_label = TK.Label(self.pw , image=self.pw.pic,borderwidth=0)         
self.pw.pic_label.grid(column=0,row=0)
Run Code Online (Sandbox Code Playgroud)

python tkinter windows-7 python-imaging-library

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

python:水平打印而不是当前默认打印

我想知道我们是否可以在python中像行一样打印.

基本上我有一个循环,可能会持续数百万次,我在那个循环中打印出一些战略计数..所以如果我可以像行一样打印那将是非常酷的

print x
# currently gives
# 3
# 4
#.. and so on
Run Code Online (Sandbox Code Playgroud)

我看起来像

print x
# 3 4
Run Code Online (Sandbox Code Playgroud)

python

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

将Pandas DataFrame绘制为同一图表上的Bar和Line

我试图绘制一个图表,其中第一列和第二列数据为条形,然后是第三列数据的行覆盖.

我尝试了以下代码,但这创建了2个单独的图表,但我希望这一切都在一个图表上.

left_2013 = pd.DataFrame({'month': ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'],
                     '2013_val': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 6]})

right_2014 = pd.DataFrame({'month': ['jan', 'feb'], '2014_val': [4, 5]})

right_2014_target = pd.DataFrame({'month': ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'],
                                   '2014_target_val': [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]})


df_13_14 = pd.merge(left_2013, right_2014, how='outer')
df_13_14_target = pd.merge(df_13_14, right_2014_target, how='outer')
df_13_14_target[['month','2013_val','2014_val','2014_target_val']].head(12)

plt.figure()
df_13_14_target[['month','2014_target_val']].plot(x='month',linestyle='-', marker='o') …
Run Code Online (Sandbox Code Playgroud)

python charts matplotlib pandas

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