小编Mat*_*ttR的帖子

无法导入easygui模块

这是我关于Stack Oveflow的第一个问题,如果我做错了,请原谅我.我已经使用Python几个月了.我正在尝试制作一个简单的GUI.我遇到了EasyGUI.

当我尝试导入模块时,我收到一个错误:

    Traceback (most recent call last):
  File "C:/Users/matthewr/PycharmProjects/testing start/Tsting.py", line 1, in <module>
    import easygui
  File "C:\Users\matthewr\AppData\Local\Programs\Python\Python35-32\lib\site-packages\easygui\__init__.py", line 50, in <module>
    from .boxes.choice_box import choicebox
  File "C:\Users\matthewr\AppData\Local\Programs\Python\Python35-32\lib\site-packages\easygui\boxes\choice_box.py", line 76
    except Exception, e:
                    ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我删除了代码中的所有内容,import easygui但错误仍然出现.

我使用pip卸载并重新安装,但没有运气.

任何帮助,将不胜感激.

python import easygui importerror

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

麻烦在Pandas中传递基本功能

我有一个非常基本的函数,它取一个字符串的前六个字母.我想将它应用于我的DataFrame中的列.

码:

import re
import pandas as pd
import numpy as np
dfp = pd.DataFrame({'A' : [np.NaN,np.NaN,3,4,5,5,3,1,5,np.NaN], 
                    'B' : [1,0,3,5,0,0,np.NaN,9,0,0], 
                    'C' : ['AA1233445','A9875', 'rmacy','Idaho Rx','Ab123455','TV192837','RX','Ohio Drugs','RX12345','USA Pharma'], 
                    'D' : [123456,123456,1234567,12345678,12345,12345,12345678,123456789,1234567,np.NaN],
                    'E' : ['Assign','Unassign','Assign','Ugly','Appreciate','Undo','Assign','Unicycle','Assign','Unicorn',]})
def six_dig(thing):
    return str(thing)[:6]

dfp6= dfp[dfp['C'].apply(six_dig, axis=1)]
Run Code Online (Sandbox Code Playgroud)

但我得到:TypeError: six_dig() got an unexpected keyword argument 'axis' 我甚至尝试使用.map()但得到同样的错误.

如果我删除axis=1我得到:KeyError: ["STUFF"] not in index

我必须遗漏一些非常简单的东西,因为我之前在DataFrame列上使用了函数...

python apply dataframe pandas

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

将Python变量传递给批处理文件

我有一个基本的批处理文件,它接受用户输入:

@echo off
set /p Thing= Type Something: 
echo %Thing%
pause
Run Code Online (Sandbox Code Playgroud)

但是,我想使用Python编写的变量传递到批处理文件中.让我们说一个字符串'arg1'这只是一个基本的例子,但我仍然无法弄明白.以下代码将运行批处理,但'arg1"没有影响

import subprocess

filepath = r'C:\Users\MattR\Desktop\testing.bat'

subprocess.call([filepath, 'arg1'])
Run Code Online (Sandbox Code Playgroud)

我也试过,p = subprocess.Popen([filepath, 'arg1'])但批处理文件不能在Python中运行.

我搜索过网络,但是没有一个答案似乎对我有用.以下是我也尝试过的一些链接:示例1,示例2.我也尝试过其他人,但他们似乎对用户的需求非常具体.

如何开始将Python变量传递到我的批处理文件中?

python subprocess batch-file python-3.6

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

通过将Regex转换为'Str'从Python中的字符串中删除日期

我希望从更长的字符串列表中删除日期,每个字符串可能包含也可能不包含日期.一个这样的字符串的示例可能是:

"Jane Doe 76554334 12/15/2017 - 8:35 pm 700945 - SDFTRD $550.95"
Run Code Online (Sandbox Code Playgroud)

我已经构建了一个返回错误的方法:

AttributeError: 'NoneType' object has no attribute 'match_object'
Run Code Online (Sandbox Code Playgroud)

我的目标是寻找正则表达式匹配(\d+/\d+/\d+),然后将该匹配转换为字符串,以便它可以使用.replace().我似乎无法解决这个问题match_object.

这是我的方法:

def replace_match(string):
    match=re.search(r'(\d+/\d+/\d+)',string)
    if match:
        match=re.match(r'(\d+/\d+/\d+)',string).match_object.group(0)
        print("match = " + match)
        string = string.replace(match, "")
    else:
        print("no match found")
    return string
Run Code Online (Sandbox Code Playgroud)

我使用的是Python 3.6.3

python regex string replace python-3.x

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

Pandas 中的采样从 1 个月减少到几个月

我有一个跨度为 36 个月的数据集。我想对 3 个月的时间进行下采样。我用:

df = df.resample('3M').sum()
Run Code Online (Sandbox Code Playgroud)

但是,当我查看输出时,它似乎没有正确分隔月份。例如,以下是 36 个月的数据:

1901-01-01    266.0
1901-02-01    145.9
1901-03-01    183.1
1901-04-01    119.3
1901-05-01    180.3
1901-06-01    168.5
1901-07-01    231.8
1901-08-01    224.5
1901-09-01    192.8
1901-10-01    122.9
1901-11-01    336.5
1901-12-01    185.9
1902-01-01    194.3
1902-02-01    149.5
1902-03-01    210.1
1902-04-01    273.3
1902-05-01    191.4
1902-06-01    287.0
1902-07-01    226.0
1902-08-01    303.6
1902-09-01    289.9
1902-10-01    421.6
1902-11-01    264.5
1902-12-01    342.3
1903-01-01    339.7
1903-02-01    440.4
1903-03-01    315.9
1903-04-01    439.3
1903-05-01    401.3
1903-06-01    437.4
1903-07-01    575.5
1903-08-01    407.6
1903-09-01    682.0
1903-10-01    475.3
1903-11-01 …
Run Code Online (Sandbox Code Playgroud)

python time-series pandas

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

Pandas 二进制列的值列表

我有一个购买各种商品的用户的数据框。我想将该值列表分解为单独的列,并为购买该商品的用户提供一个二进制标志。

输入:

       A           B
0  James  [123, 456]
1   Mary       [123]
2   John  [456, 789]
Run Code Online (Sandbox Code Playgroud)

预期输出:

       A           B  123  456  789
0  James  [123, 456]    1    1    0
1   Mary       [123]    1    0    0
2   John  [456, 789]    0    1    1
Run Code Online (Sandbox Code Playgroud)

我尝试过的(一步一步)

df['B'].explode()这是我的第一步:

0    123
0    456
1    123
2    456
2    789
Run Code Online (Sandbox Code Playgroud)

使用:get_dummies() pd.get_dummies(df['B'].explode())

   123  456  789
0    1    0    0
0    0    1    0
1    1    0    0
2    0    1    0
2    0    0 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

将列表元素添加到列表列表的末尾

我有一个值列表,我想将其元素添加到列表列表中每个列表的末尾。有没有Pythonic或有效的方法来解决这个问题?

例如,给定:

x = [['a','b','c'],['d','e','f'],['g','h','i']]
y = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

我期望: [['a', 'b', 'c', 1], ['d', 'e', 'f', 2], ['g', 'h', 'i', 3]]

我试过了:

list(zip(x,y))
Run Code Online (Sandbox Code Playgroud)

但是,这会产生:

[(['a', 'b', 'c'], 1), (['d', 'e', 'f'], 2), (['g', 'h', 'i'], 3)]
Run Code Online (Sandbox Code Playgroud)

我可以用这样的低效循环来解决它:

new_data = []
for i,x in enumerate(x):
    x.append(y[i])
    new_data.append(x)

print(new_data)
[['a', 'b', 'c', 1], ['d', 'e', 'f', 2], ['g', 'h', 'i', 3]]
Run Code Online (Sandbox Code Playgroud)

python

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

Pandas 日期之间的月数差异

我有一个具有以下值的数据框日期列

2015-01-01
2015-02-01
2015-03-01
2015-07-01
2015-08-01
2015-10-01
2015-11-01
2016-02-01
Run Code Online (Sandbox Code Playgroud)

我想在几个月内找到这些值的差异,如下所示

  date_dt       diff_mnts
2015-01-01        0
2015-02-01        1
2015-03-01        1
2015-07-01        4 
2015-08-01        1
2015-10-01        2
2015-11-01        1
2016-02-01        3
Run Code Online (Sandbox Code Playgroud)

我尝试使用该diff()方法计算天数,然后转换为 astype('timedelta64(M)'). 但在这些情况下,当天数小于 30 时 - 它显示月份差异值为 0。请告诉我,如果有任何简单的内置函数,我可以在这种情况下尝试。

python date dataframe pandas

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