我正在编写一个脚本来自动运行特定模型.当模型失败时,它等待用户输入(Enter键).我可以检测到模型何时失败,但我无法使用python(在linux上)来模拟按键事件.Windows有SendKeys库来做这个,但我想知道在Linux上是否有类似的python库.
谢谢!
我有以下数据帧:
col
0 pre
1 post
2 a
3 b
4 post
5 pre
6 pre
Run Code Online (Sandbox Code Playgroud)
我想将数据框中不包含'pre'的所有行替换为'nonpre',因此数据框如下所示:
col
0 pre
1 nonpre
2 nonpre
3 nonpre
4 nonpre
5 pre
6 pre
Run Code Online (Sandbox Code Playgroud)
我可以使用字典和pandas替换来做到这一点,但是我想只选择不是'pre'的元素并用'nonpre'替换它们.没有在字典中列出所有可能的col值,有更好的方法吗?
from multiprocessing import Pool
with Pool(processes=5) as p:
p.starmap(name_of_function, all_inputs)
Run Code Online (Sandbox Code Playgroud)
我有一段像上面这样并行执行函数的代码.假设all_inputs有10,000个元素,我想知道哪个元素正在执行,例如10,000个中的100个...有没有办法获得该索引?
当绘制一个由另一列分组的pandas boxplot时,pandas会自动为该绘图添加一个标题,并说"Boxplot by ....".有没有办法删除它?我试过用
suptitle('')
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.我正在使用最新的熊猫(0.13.1)版本.
我有以下网格图,并想绘制一个箭头(使用MS绘制蓝色显示).我怎么能通过matplotlib做到这一点?我不知道有任何命令要做.

我有一个非常大的netCDF文件,我正在使用python中的netCDF4阅读
我无法一次读取此文件,因为它的尺寸(1200 x 720 x 1440)太大,整个文件不能同时在内存中.第一维代表时间,下一个分别代表纬度和经度.
import netCDF4
nc_file = netCDF4.Dataset(path_file, 'r', format='NETCDF4')
for yr in years:
nc_file.variables[variable_name][int(yr), :, :]
Run Code Online (Sandbox Code Playgroud)
然而,一次阅读一年是非常缓慢的.如何加快以下用例的速度?
- 编辑
chunksize是1
我可以阅读一系列年份:nc_file.variables [variable_name] [0:100,:,]
有几个用例:
多年来:
numpy.ma.sum(nc_file.variables[variable_name][int(yr), :, :])
Run Code Online (Sandbox Code Playgroud)# Multiply each year by a 2D array of shape (720 x 1440)
for yr in years:
numpy.ma.sum(nc_file.variables[variable_name][int(yr), :, :] * arr_2d)
Run Code Online (Sandbox Code Playgroud)
# Add 2 netcdf files together
for yr in years:
numpy.ma.sum(nc_file.variables[variable_name][int(yr), :, :] +
nc_file2.variables[variable_name][int(yr), :, :])
Run Code Online (Sandbox Code Playgroud) 我使用这里的数据来构建使用seaborn和pandas的热图.
输入csv文件位于:https://www.dropbox.com/s/5jc1vr6u8j7058v/LUH2_trans_matrix.csv? dl = 0
码:
import pandas
import seaborn.apionly as sns
# Read in csv file
df_trans = pandas.read_csv('LUH2_trans_matrix.csv')
sns.set(font_scale=0.8)
cmap = sns.cubehelix_palette(start=2.8, rot=.1, light=0.9, as_cmap=True)
cmap.set_under('gray') # 0 values in activity matrix are shown in gray (inactive transitions)
df_trans = df_trans.set_index(['Unnamed: 0'])
ax = sns.heatmap(df_trans, cmap=cmap, linewidths=.5, linecolor='lightgray')
# X - Y axis labels
ax.set_ylabel('FROM')
ax.set_xlabel('TO')
# Rotate tick labels
locs, labels = plt.xticks()
plt.setp(labels, rotation=0)
locs, labels = plt.yticks()
plt.setp(labels, rotation=0)
# revert matplotlib …Run Code Online (Sandbox Code Playgroud) 我想对以下数据框进行排序:
Region LSE North South
0 Cn 33.330367 9.178917
1 Develd -36.157025 -27.669988
2 Wetnds -38.480206 -46.089908
3 Oands -47.986764 -32.324991
4 Otherg 323.209834 28.486310
5 Soys 34.936147 4.072872
6 Wht 0.983977 -14.972555
Run Code Online (Sandbox Code Playgroud)
我想对它进行排序,以便根据列表重新排序LSE列:
lst = ['Oands','Wetnds','Develd','Cn','Soys','Otherg','Wht']
Run Code Online (Sandbox Code Playgroud)
当然,其他列也需要相应地重新排序.在熊猫中有没有办法做到这一点?
我找不到一个pandas函数(我以前见过)用数据框中的NaN替换另一个数据帧的值(假设可以指定一个公共索引).有帮助吗?
我有这个人.数据帧:
datetime
2012-01-01 125.5010
2012-01-02 125.5010
2012-01-03 125.5010
2012-02-04 125.5010
2012-02-05 125.5010
2012-02-29 125.5010
2012-02-28 125.5010
2016-01-07 125.5010
2016-01-08 125.5010
2016-02-29 81.6237
Run Code Online (Sandbox Code Playgroud)
我想删除对应于2月29日的所有行,导致foll.数据框:
datetime
2012-01-01 125.5010
2012-01-02 125.5010
2012-01-03 125.5010
2012-02-04 125.5010
2012-02-05 125.5010
2012-02-28 125.5010
2016-01-07 125.5010
2016-01-08 125.5010
Run Code Online (Sandbox Code Playgroud)
现在,我只是手动完成:
df.drop(df.index[['2012-02-29']]).我怎样才能使它适用于所有年份,而不必手动指定行索引.