小编Fiz*_*izi的帖子

熊猫:传递给agg函数的对象的数据类型是什么

我很好奇到底传递给agg函数的是什么

Id      NAME   SUB_ID
276956  A      5933
276956  B      5934
276956  C      5935
287266  D      1589
Run Code Online (Sandbox Code Playgroud)

因此,当我调用agg函数时,x的数据类型到底是什么。

df.groupby('Id').agg(lambda x: set(x))
Run Code Online (Sandbox Code Playgroud)

从我自己的挖掘中,我发现x是,<type 'property'>但我不知道它到底是什么。我正在尝试将任何特定组的记录压缩到一行中。因此,对于ID 276956,我想在“名称”列下的一个单元格中包含A,B,C。我一直在通过将其转换为集合来执行此操作,但它使我对Nan和None值感到不满。我想知道在一行中进行压缩的最佳方法是什么。如果这些是numpy数组,那么我真的不需要转换,但是类似

df.groupby('Id').agg(lambda x: x)
Run Code Online (Sandbox Code Playgroud)

引发错误

python numpy pandas

2
推荐指数
1
解决办法
129
查看次数

logstash 5.0.1:设置elasticsearch多个索引输出多个kafka输入主题

我有一个logstash输入设置为

input {
  kafka {
  bootstrap_servers => "zookeper_address"
  topics => ["topic1","topic2"]
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要在elasticsearch中将主题提供给两个不同的索引.任何人都可以帮我解决如何为这样的任务设置输出.这时我只能设置

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "my_index"
    codec => "json"
    document_id => "%{id}"
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要在同一elasticsearch例如两个指标说index1index2,这将通过对未来的信息供给topic1topic2

elasticsearch logstash-configuration

2
推荐指数
1
解决办法
1145
查看次数

Logstash 5.1.1 kafka输入不会获取有关主题的现有消息

我有以下logstash配置与kafka输入

input {
  kafka {
    bootstrap_servers => "localhost:9092"
    topics => ["mytopic"]
  }
}
filter {
  json {
    source => "message"
  }
}
output {
  stdout {
    codec => rubydebug
  }
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "my_index"
    codec => "json"
    document_id => "%{id}"
    doc_as_upsert => true
    action => "update"
  }
}
Run Code Online (Sandbox Code Playgroud)

我面临的问题是,当我运行logstash时,它不会收到有关该主题的旧消息.我的印象是,第一次运行logstash时,它会获取有关尚未消耗的主题的所有消息.我检查过这是一个新主题,并且在其中有消息,当它开始运行时没有被logstash接收.它确实会在主题运行时收到有关主题的消息,但不包括在其开始之前存在的消息.我在配置中遗漏了什么,或者它是输入本身的怪癖.消息的保证对我的业务需求至关重要.

elasticsearch apache-kafka logstash apache-zookeeper

2
推荐指数
1
解决办法
2101
查看次数

Python:将字节数组转换回 int 列表

我可以使用以下命令将整数列表转换为字节数组:

bytes([17, 24, 121, 1, 12, 222, 34, 76])
Out[144]: b'\x11\x18y\x01\x0c\xde"L'
bytes([1, 2, 3])
Out[145]: b'\x01\x02\x03'
Run Code Online (Sandbox Code Playgroud)

我现在想要的是将字节数组字符串恢复到其原始列表。有没有一个简单的Python函数可以做到这一点?我发现了以下内容:

int.from_bytes(b'\x11\x18y\x01\x0c\xde"L', byteorder='big', signed=False)
Out[146]: 1231867543503643212
Run Code Online (Sandbox Code Playgroud)

我不太确定这里发生了什么。转换是如何发生的以及输出意味着什么。因此,如果有人可以提供一些背景或见解,我将不胜感激

python arrays

2
推荐指数
1
解决办法
1万
查看次数

为 pip install 命令提供标头

我有一个本地 Artifactory 存储库,我希望向我的用户提供 URL,以便他们能够安装轮子。它们本身不是 Artif\xd7\xa9\xd7\x91tory 的一部分,所以我正在考虑使用 API KEY。根据文件 -

\n
our API key can be used to authenticate you when using the REST API.\nTo use the API key, add the following header to all REST API calls: 'X-JFrog-Art-Api: <YOUR_API_KEY>'\n
Run Code Online (Sandbox Code Playgroud)\n

我有我的命令pip install https://artifactory.myorg.com:443/artifactory/local-pypi-mywork-01/mypackage-0.1-py3-none-any.whl

\n

有没有办法提供 API 密钥作为此 URL 请求的标头?

\n

pip artifactory pypi

2
推荐指数
1
解决办法
2357
查看次数

Pandas:将每一行转换为<column name,row value> dict并添加为新列

我有一个这样的df

          STATUS_ID               STATUS_NM
0                 1                A
1                 2                B
2                 3                C
3                 4                D
Run Code Online (Sandbox Code Playgroud)

我想通过apply来执行一行,获取一个键,在一个单独的列中每行的值为par.最后的df应该是

                        STATUS
0                 {STATUS_ID:1,STATUS_NM:A}
1                 {STATUS_ID:2,STATUS_NM:B}
2                 {STATUS_ID:3,STATUS_NM:C}
3                 {STATUS_ID:4,STATUS_NM:D} 
Run Code Online (Sandbox Code Playgroud)

更新:我已经尝试了df[cols].apply(pd.Series.to_dict, axis=1),df[cols].apply(lambda x: x.to_dict(), axis=1)但我没有得到实际的字典 <built-in method values of dict object at 0x00...

我相信它的导致问题的是我的熊猫版本.这已经在这里讨论了 - https://github.com/pandas-dev/pandas/issues/8735 所以问题是,是否有另一种方法来执行相同的操作来规避这个问题.我无法将我的Pandas版本更新为0.17

python numpy apply pandas

1
推荐指数
1
解决办法
584
查看次数

Pandas:将包含 dict 值列表的列解压为多列

我有一个看起来像这样的 df

            COL1   COL2    COL3                             
0         ABC      N       [{u'PERF_PCT': 0.2,u'PERF_DATE': 12},{u'PERF_PCT': 0.3,u'PERF_DATE': 13}]
1         XYZ      N       [{u'PERF_PCT': 0.6,u'PERF_DATE': 12},{u'PERF_PCT': 0.2,u'PERF_DATE': 13},{u'PERF_PCT': 0.7,u'PERF_DATE': 14}] 
Run Code Online (Sandbox Code Playgroud)

我需要解压缩第 3 列,以便数据框为 COL3 中的列表中的每个字典都有额外的行,并为字典中的每个键提供额外的列。dict 中的键值对是固定的。

          COL1    COL2     PERF_PCT       PERF_DATE              
0         ABC      N       0.2            12
1         ABC      N       0.3            13
2         XYZ      N       0.6            12 
3         XYZ      N       0.2            13
4         XYZ      N       0.7            14 
Run Code Online (Sandbox Code Playgroud)

我已经能够使用 for 循环完成相同的任务,但我需要一些非常高性能的东西。结果 df 可以有大约 170k 条记录,目前使用 for 循环需要大约 20+ 秒,这是不可接受的。我希望使用 pandas 特定的 apply 或其他功能可以使这更快,但未能这样做。如果有一种非常快速的方法可以做到这一点,我将不胜感激。谢谢。

python apply pandas

1
推荐指数
1
解决办法
3044
查看次数

Javascript 正则表达式占位符打印字符串而不是其值

我有一个 javascript 函数,它查找特定格式的字符串,然后将其转换为链接

<script>
var re = /Ticket-([0-9]*?(?=-)-[0-9]*)/; 
var str = 'ASD Ticket-492-367 - Make my day.'; 
t = str.replace(re,'<a href="http://myworld/ticket/$1">$0</a>')
document.write(t);
</script>
Run Code Online (Sandbox Code Playgroud)

它查找 Ticket-[somenumbers]-[somenumbers] 并将其转换为链接。现在,当我在在线 JS 编辑器中单独运行它时,它就可以工作了。但是,当我在脚本中运行它并查看页面时,它确实将字符串转换为列表,但在页面上打印出文字 $0 而不是其值。我的 Javascript 是否正确,或者我的脚本中是否有其他内容可能导致错误的结果。一如既往,我们感谢任何帮助。

javascript regex

0
推荐指数
1
解决办法
4102
查看次数