让我们选择一个最小可重复的示例,以展示如何使用各种约束来从数据框架中过滤行。为简单起见,让我们选择一个具有20个定期重复条目的两列数据框。使用乘数 n
将两个列表连接到50,000次的列表中,该帧完全有100万行。
# Example dataframe
N = 50000
df_big = pd.DataFrame({'col1' : [7,2, 24,1, 27,15,7,27,26,10,7,2,10,8,4,5,17,10,3,28]*N,
'col2' : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]*N})
现在,我们可以应用各种可以通过和
(即&
)关联的各种约束(平等,不平等或基于功能) >(IE |
运算符,如下所示。在依次切除任何约束所不存在的行之后,我们可以应用 .mean()
获得所需的所需 。
# inequality constraints
df_big = df_big[(df_big['col1'] > 5) & (df_big['col1'] <= 15)]
# equality constraints
df_big = df_big[(df_big['col1'] == 10) | (df_big['col1'] == 7)]
# function-based condition
df_big = df_big[df_big['col1'].apply(isPrime)]
df_mean = df_big.mean()
结果
col1 7.000000
col2 6.333333
dtype: float64
def isPrime(x:int):
assert i>0
if x==1:
return False
elif x==2:
return True
else:
return not(any([x%i==0 for i in range(2,x,1)]))
可能。只是对您的字典进行了稍作修改。让我知道您是否有问题
字典
d={'1a': "%, head flow", '2a': "%, head flow", '3a': "%, mass flow"}
#create ma表达
m_expr1 = create_map([lit(x) for x in chain(*d.items())])
映射值并将字符串分为列表
df.withColumn('tag1', split(m_expr1[lower(df['tag'])],'\,')).show()
不,这是不可能的,因为时间表是一个有参数的块,而不是参数本身。地图是骨料类型,它们是由原始类型制成的(例如,在这种情况下是数字)。可以在[1](H/T:Matt Schuchard)中找到有关原始类型和骨料类型的更详细的解释。在这种情况下,我更喜欢做类似的事情:
variable "schedule" {
type = object({
hours = number
minutes = number
})
description = "Variable to define the values for hours and minutes."
default = {
hours = 0
minutes = 0
}
}
然后,在资源中:
resource "azurerm_data_factory_trigger_schedule" "sfa-data-project-agg-pipeline-trigger" {
name = "aggregations_pipeline_trigger"
data_factory_id = var.data_factory_resource_id
pipeline_name = "my-pipeline"
frequency = var.frequency
schedule {
hours = [var.schedule.hours]
minutes = [var.schedule.minutes]
}
}
[1] https://www.terraform.io/plugin/sdkv2/schemas/schema-types#typemap
克里斯·雷德福(Chris Redford)的答案也适用于QT容器(当然)。这是一个改编(注意i返回 constebegin()
,分别 constend()
从const_iterator方法):
class MyCustomClass{
QList<MyCustomDatatype> data_;
public:
// ctors,dtor, methods here...
QList<MyCustomDatatype>::iterator begin() { return data_.begin(); }
QList<MyCustomDatatype>::iterator end() { return data_.end(); }
QList<MyCustomDatatype>::const_iterator begin() const{ return data_.constBegin(); }
QList<MyCustomDatatype>::const_iterator end() const{ return data_.constEnd(); }
};
如,您的后端EC2服务器可以直接通过 @connections
api将消息发送给连接的客户端。此 /a>带您完成如何做到这一点。
为此,您需要将ConnectionID添加到标题。请参阅此答案关于如何做到这一点。
您需要使用此 https://pub.dev/packages/flutter_svg svg image的包装。
例如:-
final Widget networkSvg = SvgPicture.network(
'http://www.w3.org/2000/svg',
semanticsLabel: 'A shark?!',
placeholderBuilder: (BuildContext context) => Container(
padding: const EdgeInsets.all(30.0),
child: const CircularProgressIndicator()),
);
您错过了拆分功能的 lim> 选项。如果给它一个值2,则结果列表最多将有2个条目:
val result = "Bladder Infection".split("i", ignoreCase = true, limit = 2)
这将是使用 np.where()
的好时机
import pandas as pd
import numpy as np
name_list = ['James', 'Sally', 'Sarah', 'John']
df = pd.DataFrame({
'Names' : ['James', 'Roberts', 'Stephen', 'Hannah', 'John', 'Sally']
})
df['ColumnB'] = np.where(df['Names'].isin(name_list), 1, 0)
df
使用 json.load(file)
而不是 file.read()
import json
with open("a.txt", encoding="UTF8") as f:
a = json.load(f)
print(type(a)) # <class 'list'>
print(a[0])
print(a[1])
我使用了CSV模块。
import json
import csv
import os
PATH = os.path.dirname(__file__) # Get the path of the used directory
with open(PATH+r"\input.json", "r") as file: # Access the data
json_data = json.load(file)
json_data = [item for item in json_data[0]]
with open(PATH+r"\output.csv", "w+", newline='') as file:
writer = csv.writer(file)
headers = [list(data.keys()) for data in json_data] # Divide the data in
rows = [list(data.values()) for data in json_data] # headers and rows
for i in range(len(json_data)):
writer.writerow(headers[i]) # Write everything
writer.writerow(rows[i])
如果您不想让标头删除此行 writer.writerow(headers [i])
这是我作为输出获得的数据:
id,networkId,name,applianceIp,subnet,fixedIpAssignments,reservedIpRanges,dnsNameservers,dhcpHandling,dhcpLeaseTime,dhcpBootOptionsEnabled,dhcpOptions,interfaceId,networkName
1,L_1111,VLAN1,1.1.1.1,1.1.1.0/24,{},[],upstream_dns,Run a DHCP server,1 day,False,[],1,NETWORK1
id,networkId,name,applianceIp,subnet,fixedIpAssignments,reservedIpRanges,dnsNameservers,dhcpHandling,interfaceId,networkName
2,L_2222,VLAN2,2.2.2.2,2.2.2.0/24,{},[],upstream_dns,Do not respond to DHCP requests,2,NETWORK2
如何定义 base_string = '00 .00.00'
然后用base_string填充其他字符串:
base_str = '00.00.00'
df = pd.DataFrame({'ms_str':['72.1','61','25.73.20','33.12']})
print(df)
df['ms_str'] = df['ms_str'].apply(lambda x: x+base_str[len(x):])
print(df)
输出:
ms_str
0 72.1
1 61
2 25.73.20
3 33.12
ms_str
0 72.10.00
1 61.00.00
2 25.73.20
3 33.12.00
如果我正确理解您,您的目标是删除具有相同 ID
和状态>状态>的重复事件
,并仅保留其中一个有最新时间。
代码的问题:
- 您正在使用字符串的身份比较
字符串e.getStatus()==“ inprogress”
而不是equals()
。 - 如果
开始
将是类型LocalDateTime
而不是String
,则将更加干净。 - 目前尚不清楚您是否要修改现有列表或根据方法执行的结果生成新列表(因为在代码中,您要创建一个新列表,然后立即重新分配变量)。如果您需要修改现有列表,则更多的性能将不一度删除元素,而是生成应保留的事件的
Hashset
,然后一次删除所有其他事件使用rearainall()
。它将将最坏情况的二次时间变成线性。 - 方法名称
删除了()
和参数名称re
与 java命名约定 。
假设事件的平等根据 equals/hashcode
实现并不仅基于 ID> ID
status 。我们可以通过串联 id
和状态
创建的键生成地图。然后根据该地图的值生成由此产生的列表。
下面的代码生成a 新列表,如果您需要修改传递给方法的列表,然后用 collectors.tolist()
用 collectors.toset替换()
并在事件的初始列表中应用 recainall()。
public List<Event> removeDuplicates(List<Event> events) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-mm-dd HH:mm:ss");
return events.stream()
.filter(e -> e.getId() != null && !e.getId().isEmpty() && e.getStatus().equals("InProgress"))
.collect(Collectors.groupingBy(
e -> e.getId() + ":" + e.getStatus(),
Collectors.maxBy(Comparator.comparing(e -> LocalDateTime.parse(e.getStartTime(), formatter)))
))
.values().stream()
.filter(Optional::isPresent)
.map(Optional::get)
.collect(Collectors.toList());
}
我找到了错误。
在JS类层次中,我应该使用tf.sub而不是写入输入[0] - 输入[1]
I've found the bug.
In the js class LayerAbs, I should use tf.sub instead of writing inputs[0] - inputs[1] directly
输入0与XXX层不兼容(可能有关将Keras lambda转换为Tensorflow.js的自定义类的问题)