我有一个pandas数据帧如下.对于每个Id,我可以有多个Name和Sub-id.
Id NAME SUB_ID
276956 A 5933
276956 B 5934
276956 C 5935
287266 D 1589
Run Code Online (Sandbox Code Playgroud)
我想压缩数据框,使每个id只有一行,每个id下的所有名称和sub_id在该行上显示为单数集
Id NAME SUB_ID
276956 set(A,B,C) set(5933,5934,5935)
287266 set(D) set(1589)
Run Code Online (Sandbox Code Playgroud)
我尝试将id分组,然后聚合所有其他列
df.groupby('Id').agg(lambda x: set(x))
Run Code Online (Sandbox Code Playgroud)
但是在这样做时,结果数据帧没有Id列.当你执行groupby时,id将作为元组的第一个值返回,但我想当你聚合时会丢失.有没有办法获得我正在寻找的数据帧.这是groupby和aggregate而不会丢失已分组的列.
我想知道是否有办法在对数据框的列使用应用时使用索引值。假设我有 df 像:
col1 col2
0 a [0,1,2]
1 b [0,2]
2 c [0,1,2]
Run Code Online (Sandbox Code Playgroud)
我想在 df.col2 上编写一个应用函数,以便它从 col2 中的列表中删除索引值,留下一个 df 如下:
col1 col2
0 a [1,2]
1 b [0,2]
2 c [0,1]
Run Code Online (Sandbox Code Playgroud)
索引值可能在也可能不在列表中。但如果它确实存在于列表中,则应将其删除。请注意,这不是实际用例,但与我需要的类似。我有
df.col2.apply(lambda x: f(x))
Run Code Online (Sandbox Code Playgroud)
在 f(x) 中,如果可能或解决方法,我希望能够访问 x 的索引值。我知道 df.apply() 可以处理列值,而 df.index.map() 可以处理索引。Pandas 中是否有一种方法可以将两者的用例结合到一个优雅的解决方案中。谢谢您的帮助。
更新:索引是一个整数值,它将以连续整数的方式受到约束。col2 将为每个索引提供一个列表。我想检查索引是否在该列表中,如果存在,则将其从列表中删除。因此,对于行索引 3,我们有列表 [27,36,3,9,7]。我想从列表中删除 3。该列表是无序的
我正在运行一个数据管道,以便通过 jdbc connect 将数据从 sql db 读取到 kafka 主题中我使用 ES 的 kafka 接收器连接器将这些数据接收到 Elasticsearch 中
我需要重置这条管道。为此,我想重置正在侦听 jdbc 连接主题的消费者组。所以我运行以下命令
kafka-consumer-groups --reset-offsets --to-earliest --all-topics --execute --group mygroup --bootstrap-server myserver:9092
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误
Error: Assignments can only be reset if the group 'mygroup' is inactive, but the current state is Stable.
Run Code Online (Sandbox Code Playgroud)
我停止了连接以使该组处于非活动状态,但这不起作用。所以我的问题是,如何让我的小组不活跃
我试图只运行一个类中提供的单元测试中的单个测试。所以假设
class MytestSuite(unittest.TestCase):
def test_false(self):
a = False
self.assertFalse(a, "Its false")
def test_true(self):
a = True
self.assertTrue(a, "Its true")
Run Code Online (Sandbox Code Playgroud)
我只想运行test_false。根据本站点和在线提供的问答,我在主类中使用了以下代码行
if __name__ == "__main__": #Indentation was wronng
singletest = unittest.TestSuite()
singletest.addTest(MytestSuite().test_false)
unittest.TextTestRunner().run(singletest)
Run Code Online (Sandbox Code Playgroud)
尝试添加测试时,我不断收到错误消息。主要是:
File "C:\Python27\Lib\unittest\case.py", line 189, in __init__
(self.__class__, methodName))
ValueError: no such test method in <class '__main__.MytestSuite'>: runTest
Run Code Online (Sandbox Code Playgroud)
我的班级需要特定的runTest方法吗?有没有一种方法可以运行可能属于不同套件的特定测试。例如:方法A属于套件类1和B法属于套件类2。令人惊讶的是,事实证明这是很难在网上找到的。有许多通过命令行而不是从程序本身进行操作的示例。与往常一样,我们将提供任何帮助。
我有一个流是其他流的组合
final KTable<Long, CompositeInfo> compositeInfoTable = compositeImcTable
.leftJoin(
compositeFundTable,
(CompositeImc cimc, CompositeFund cf) -> {
CompositeInfo newCandidate = new CompositeInfo();
if (cimc != null) {
newCandidate.imcName = cimc.imcName;
newCandidate.imcID = cimc.imcID;
if (cf != null) {
newCandidate.investments = cf.investments;
}
}
return newCandidate;
})
.leftJoin(
compositeGeographyTable,
(CompositeInfo cinfo, CompositeGeography cg) -> {
if (cg != null) {
cinfo.regions = cg.regions;
}
return cinfo;
})
.leftJoin(
compositeSectorTable,
(CompositeInfo cinfo, CompositeSector cs) -> {
if (cs != null) {
cinfo.sectors = cs.sectors; …Run Code Online (Sandbox Code Playgroud) 关于JDBC连接器发布到的主题,我有以下json
{"APP_SETTING_ID":9,"APP_SETTING_NAME":"my_name","SETTING_KEY":"my_setting_key"}
Run Code Online (Sandbox Code Playgroud)
这是我的连接器文件
name=data.app_setting
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
poll.interval.ms=500
tasks.max=4
mode=timestamp
query=SELECT APP_SETTING_ID, APP_SETTING_NAME, SETTING_KEY,FROM MY_TABLE with (nolock)
timestamp.column.name=LAST_MOD_DATE
topic.prefix=data.app_setting
key.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter=org.apache.kafka.connect.json.JsonConverter
value.converter.schemas.enable=false
transforms=InsertKey
transforms.InsertKey.type=org.apache.kafka.connect.transforms.ValueToKey
transforms.InsertKey.fields=APP_SETTING_ID
Run Code Online (Sandbox Code Playgroud)
这确实添加了一个密钥,但它也像json格式
{"APP_SETTING_ID":9}
Run Code Online (Sandbox Code Playgroud)
虽然我只想9成为地图的关键。在数据库中,它存储为Long值。
我有一个数据框,其中包含公司及其部门
Symbol Sector
0 MCM Industrials
1 AFT Health Care
2 ABV Health Care
3 AMN Health Care
4 ACN Information Technology
Run Code Online (Sandbox Code Playgroud)
我有另一个数据框,其中包含公司及其职位
Symbol Position
0 ABC 1864817
1 AAP -3298989
2 ABV -1556626
3 AXC 2436387
4 ABT 878535
Run Code Online (Sandbox Code Playgroud)
我想要的是获得一个包含扇区聚合位置的数据框。因此,总结给定部门中所有公司的头寸。我可以通过以下方式单独执行此操作
df2[df2.Symbol.isin(df1.groupby('Sector').get_group('Industrials')['Symbol'].to_list())]
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种更有效的熊猫方法来做到这一点,而不是遍历 group_by 下的每个扇区。最终的数据框应如下所示:
Sector Sum Position
0 Industrials 14567232
1 Health Care -329173249
2 Information Technology -65742234
3 Energy 6574352342
4 Pharma 6342387658
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏。
我有一个如下所示的数据框:
NAME ID
155 ARBITRARY_A 697381
208 ARBITRARY_B 691820
265 ARBITRARY_C 691782
272 ARBITRARY_D 695593
Run Code Online (Sandbox Code Playgroud)
我想把它转换成一个字典列表,看起来像:
[{name:ARBITRARY_A, id:697381}, {name:ARBITRARY_B, id:691820},
{name:ARBITRARY_C, id:691782}, {name:ARBITRARY_D, id:695593}]
Run Code Online (Sandbox Code Playgroud)
执行此操作的最快/最佳方法是什么?
我想知道在特定索引中索引(创建/更新)了多少文档。我查看了 _stats api,但没有多大意义。谁能告诉我如何计算索引率。它可以是每秒/分钟。谢谢
我有一些Python数据将被发送到JavaScript图表.我将其转储到JSON并将其传递给模板.当我渲染数据时,它包含html实体(")而不是引号,这是无效的.如何正确地将JSON数据从Python传递到JavaScript?
pieData = [{'color': '#400068', 'name': 'xyz', 'value': 10}, {'color': '#4a8624', 'name': 'abc', 'value': 30}]
render_template('index.html', piedata=json.dumps(pieData))
Run Code Online (Sandbox Code Playgroud)
var pieData2 = {{ piedata }};
// renders as
var pieData2 = [{"color": "#5461ae", "name": "fizi.yadav", "value": 10}, {"color": "#e1dce4", "name": "surya.pradhan", "value": 30}, {"color": "#7835f0", "name": "fred.hsu", "value": 276}]
Run Code Online (Sandbox Code Playgroud)