假设我在数据框中有四列 A、B、C、D df:
import pandas as pd
df = pd.read_csv('results.csv')
df
A B C D
good good good good
good bad good good
good bad bad good
bad good good good
Run Code Online (Sandbox Code Playgroud)
我想添加另一列result。其中的变量应基于相应行的变量。在这里,在我的情况下,如果相应行中至少有三种商品,即 A、B、C、D 列,则结果中的变量应该是validelse notvalid。
预期输出:
A B C D results
good good good good valid
good bad good good valid
good bad bad good notvalid
bad good good good valid
Run Code Online (Sandbox Code Playgroud) 我有一个数据框df:
df =
index date hats
A1 01-01-2020 5
A1 02-01-2020 10
A1 03-01-2020 16
A1 04-01-2020 16
A1 21-01-2020 9
A1 22-01-2020 8
A1 23-01-2020 7
A6 20-03-2020 5
A6 21-03-2020 5
A8 30-07-2020 12
Run Code Online (Sandbox Code Playgroud)
这里,前四行是连续的天数。我想知道数据框中所有这些连续天数的开始日期和结束日期。如果像 wiseA8索引那样的系列中只有一天,df那么开始日期和结束日期将相同。此外,我也有兴趣了解df['hats']连续天数系列中列中的最高值,并将其日期与其 datehigh_hat一起返回到单独的列中high_hat_date。如果在一系列连续天数中有两个或更多相等的高值,则在新列中num_hat写入高值出现的次数,并在 中写入第一个出现日期high_hat_date。
上述数据框的示例输出如下:
index start_date end_date high_hat high_hat_date num_hat
A1 01-01-2020 04-01-2020 16 03-01-2020 2
A1 21-01-2020 23-01-2020 9 21-01-2020 1
A6 20-03-2020 21-03-2020 5 20-03-2020 …Run Code Online (Sandbox Code Playgroud) 1.我有一个函数var。我想知道通过利用系统拥有的所有处理器、内核、线程和 RAM 内存进行多处理/并行处理来快速运行此函数中的循环的最佳方法。
import numpy
from pysheds.grid import Grid
xs = 82.1206, 72.4542, 65.0431, 83.8056, 35.6744
ys = 25.2111, 17.9458, 13.8844, 10.0833, 24.8306
a = r'/home/test/image1.tif'
b = r'/home/test/image2.tif'
def var(interest):
variable_avg = []
for (x,y) in zip(xs,ys):
grid = Grid.from_raster(interest, data_name='map')
grid.catchment(data='map', x=x, y=y, out_name='catch')
variable = grid.view('catch', nodata=np.nan)
variable = numpy.array(variable)
variablemean = (variable).mean()
variable_avg.append(variablemean)
return(variable_avg)
Run Code Online (Sandbox Code Playgroud)
2.var如果我可以针对给定的函数多个参数并行运行函数和循环,那就太好了。var(a)例如:var(b)同时。因为它比单独并行化循环消耗的时间要少得多。
如果没有意义,请忽略 2。
python parallel-processing multithreading multiprocessing python-asyncio
我正在尝试使用 seaborn 散点图在数据框中绘制前 30% 的值,如下所示。
同一图的可重现代码:
import seaborn as sns
df = sns.load_dataset('iris')
#function to return top 30 percent values in a dataframe.
def extract_top(df):
n = int(0.3*len(df))
top = df.sort_values('sepal_length', ascending = False).head(n)
return top
#storing the top values
top = extract_top(df)
#plotting
sns.scatterplot(data = top,
x='species', y='sepal_length',
color = 'black',
s = 100,
marker = 'x',)
Run Code Online (Sandbox Code Playgroud)
在这里,我想对 x 轴进行排序order = ['virginica','setosa','versicolor']。当我尝试order用作 中的参数之一时sns.scatterplot(),它返回了一个错误AttributeError: 'PathCollection' object has no property 'order'。正确的做法是什么?
请注意:在数据框中,setosa …