这是我关于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卸载并重新安装,但没有运气.
任何帮助,将不胜感激.
我有一个非常基本的函数,它取一个字符串的前六个字母.我想将它应用于我的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列上使用了函数...
我有一个基本的批处理文件,它接受用户输入:
@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变量传递到我的批处理文件中?
我希望从更长的字符串列表中删除日期,每个字符串可能包含也可能不包含日期.一个这样的字符串的示例可能是:
"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
我有一个跨度为 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) 我有一个购买各种商品的用户的数据框。我想将该值列表分解为单独的列,并为购买该商品的用户提供一个二进制标志。
输入:
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) 我有一个值列表,我想将其元素添加到列表列表中每个列表的末尾。有没有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) 我有一个具有以下值的数据框日期列
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 ×8
pandas ×4
dataframe ×3
apply ×1
batch-file ×1
date ×1
easygui ×1
import ×1
importerror ×1
python-3.6 ×1
python-3.x ×1
regex ×1
replace ×1
string ×1
subprocess ×1
time-series ×1