我试图使用来自另一个字典的值来更新大字典的某些值,在这些字典中它们具有相似的键(相同的日期但是格式不同).我目前使用的过程太慢,我想减少瓶颈.
这是我目前的解决方案(它将更新的dict写入文件):
from dateutil import parser
File = open(r'E:Test1.txt','w')
b = {'1946-1-1':0,..........,'2012-12-31':5}
d = {'1952-12-12':5,........,'1994-7-2':10}
for key1, val1 in b.items():
DateK1 = parser.parse(key1)
Value = val1
for key2, val2 in d.items():
DateK2 = parser.parse(key2)
if DateK1 == DateK2:
d[key2] = Value
Order= sorted(d.items(), key=lambda t: t[0])
for item in Order:
File.write('%s,%s\n' % item)
File.close()
Run Code Online (Sandbox Code Playgroud) 几年来,我有以下格式的每小时数据帧:
Date/Time Value
01.03.2010 00:00:00 60
01.03.2010 01:00:00 50
01.03.2010 02:00:00 52
01.03.2010 03:00:00 49
.
.
.
31.12.2013 23:00:00 77
Run Code Online (Sandbox Code Playgroud)
我想平均数据,这样我就可以得到每年的0小时,1小时......小时23的平均值.
所以输出应该看起来像这样:
Year Hour Avg
2010 00 63
2010 01 55
2010 02 50
.
.
.
2013 22 71
2013 23 80
Run Code Online (Sandbox Code Playgroud)
有谁知道如何在熊猫中获得这个?
我使用pandas从csv文件导入以下数据read_csv
:
instrument type from_date to_date
0 96000001 W/D & V/L 19951227 19960102
1 96000002 DEED TRUST 19951227 19960102
2 96000003 WARNTY DEED 19951228 19960102
3 96000004 DEED TRUST 19951228 19960102
4 96000005 W/D & V/L 19951228 19960102
Run Code Online (Sandbox Code Playgroud)
我想选择那些符合日期或日期范围的行.比如我想用日期,只选择那些排19951227
在from_date
列或选择天,范围从from_date
的19951227
到to_date
19960102
.
我该怎么做?
我有一个需要 tty (如 stdin 和 stderr)的可执行文件,并且希望能够测试它。我想输入 stdin,并捕获 stdout 和 stderr 的输出,这是一个示例脚本:
# test.py
import sys
print("stdin: {}".format(sys.stdin.isatty()))
print("stdout: {}".format(sys.stdout.isatty()))
print("stderr: {}".format(sys.stderr.isatty()))
sys.stdout.flush()
line = sys.stdin.readline()
sys.stderr.write("read from stdin: {}".format(line))
sys.stderr.flush()
Run Code Online (Sandbox Code Playgroud)
我可以在没有 tty 的情况下运行它,但是它会被捕获.isatty
并且每个都返回 False:
import subprocess
p = subprocess.Popen(["python", "test.py"], stdin=subprocess.PIPE, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
p.stdin.write(b"abc\n")
print(p.communicate())
# (b'stdin: False\nstdout: False\nstderr: False\n', b'read from stdin: abc\n')
Run Code Online (Sandbox Code Playgroud)
我想捕获 stdout 和 stderr 并让所有三个返回 True - 作为 tty。
我可以用来pty
制作 tty 标准输入:
import subprocess
m, s = pty.openpty()
p = subprocess.Popen(["python", "test.py"], …
Run Code Online (Sandbox Code Playgroud) 我想在dthon中将dict转换为已排序的dict
data = pandas.read_csv('D:\myfile.csv')
for colname, dtype in data.dtypes.to_dict().iteritems():
if dtype == 'object':
print colname
count = data[colname].value_counts()
d = dict((str(k), int(v)) for k, v in count.iteritems())
f = dict(sorted(d.iteritems(), key=lambda item: item[1], reverse = True)[:5])
print f
m ={}
m["count"]= int(sum(count))
m["Top 5"]= f
print m
k = json.dumps(m)
print k
f = {'Gears of war 3': 6, 'Batman': 5, 'gears of war 3': 4, 'Rocksmith': 5, 'Madden': 3}
Run Code Online (Sandbox Code Playgroud)
我想要的输出是:
f = {'Gears of war 3': 6, 'Batman': 5, …
Run Code Online (Sandbox Code Playgroud) 我有两个DataFrame:
df1 = ['Date_Time',
'Temp_1',
'Latitude',
'N_S',
'Longitude',
'E_W']
df2 = ['Date_Time',
'Year',
'Month',
'Day',
'Hour',
'Minute',
'Seconds']
Run Code Online (Sandbox Code Playgroud)
正如您可以看到,两个DataFrame都Date_Time
具有公共列.我希望通过匹配来加入这两个DataFrame Date_Time
.
我当前的代码是:df.join(df2, on='Date_Time')
,但这是一个错误.
我有一个pandas DataFrame,其中包含一组列的重复值.例如:
df = pd.DataFrame({'Column1': {0: 1, 1: 2, 2: 3}, 'Column2': {0: 'ABC', 1: 'XYZ', 2: 'ABC'}, 'Column3': {0: 'DEF', 1: 'DEF', 2: 'DEF'}, 'Column4': {0: 10, 1: 40, 2: 10})
In [2]: df
Out[2]:
Column1 Column2 Column3 Column4 is_duplicated dup_index
0 1 ABC DEF 10 False 0
1 2 XYZ DEF 40 False 1
2 3 ABC DEF 10 True 0
Run Code Online (Sandbox Code Playgroud)
第(1)行和第(3)行相同.基本上,Row(3)是Row(1)的副本.
我正在寻找以下输出:
Is_Duplicate
,包含行是否重复[可以通过在数据帧列(Column2,Column3和Column4)上使用"重复"方法来完成]
Dup_Index
重复行的原始索引.
In [3]: df
Out[3]:
Column1 Column2 Column3 Column4 Is_Duplicate Dup_Index
0 …
Run Code Online (Sandbox Code Playgroud) 我有一个DataFrame如下,其中Id是一个字符串,Date是一个日期时间:
Id Date
1 3-1-2012
1 4-8-2013
2 1-17-2013
2 5-4-2013
2 10-30-2012
3 1-3-2013
Run Code Online (Sandbox Code Playgroud)
我想整合表格,为每个具有最新日期的Id显示一行.
有关如何做到这一点的任何想法?
我有一个带有单行的pandas DataFrame:
10 20 30 70
data1: 2.3 5 6 7
Run Code Online (Sandbox Code Playgroud)
我想重新索引框架,以便列值(10,20,30,70)成为索引值,数据成为列:
data1:
10 2.3
20 5.0
30 6.0
70 7.0
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?
我有一个带有date_time/voltage数据的熊猫DataFrame,如下所示(df1):
Date_Time Chan
0 20130401 9:00 AAT
1 20130401 10:00 AAT
2 20130401 11:00 AAT
3 20130401 12:00 AAT
4 20130401 13:00 AAT
5 20130401 14:00 AAT
6 20130401 15:00 AAT
Run Code Online (Sandbox Code Playgroud)
我使用它作为原型来加载来自更大的数据文件的数据并创建一个DataFrame.另一个DataFrame看起来像这样(df2):
Chan date_time Sens1 Sens2
AAC 01-Apr-2013 09:00 5.17 1281
AAC 01-Apr-2013 10:00 5.01 500
AAC 01-Apr-2013 12:00 5.17 100
AAC 01-Apr-2013 13:00 5.19 41997
AAC 01-Apr-2013 16:00 5.21 2123
AAT 01-Apr-2013 09:00 28.82 300
AAT 01-Apr-2013 10:00 28.35 4900
AAT 01-Apr-2013 12:00 28.04 250
AAE 01-Apr-2013 11:00 3.36 …
Run Code Online (Sandbox Code Playgroud) pandas ×8
python ×6
python-2.7 ×3
average ×1
dataframe ×1
date ×1
datetime ×1
dictionary ×1
popen ×1
python-3.x ×1
statistics ×1
subprocess ×1
tty ×1