AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-6936582

BERA's questions

Martin Hope
Bera
Asked: 2024-11-22 02:26:59 +0800 CST

通过其他列中的最大值获取某一列的值

  • 6

我有 df:

import pandas as pd
data = {"id_1":["a","b","c"],
        "id_2":["q","w","e"],
        "val_1":[1,2,3],
        "val_2":[2,0,0]}
df = pd.DataFrame(data)

#   id_1 id_2  val_1  val_2
# 0    a    q      1      2
# 1    b    w      2      0
# 2    c    e      3      0

val_1我想比较和val_2列的值。如果val_1大于val_2(它们永远不会相同),我想用的值填充新列id_1,否则用的值填充新列id_2。要创建:

  id_1 id_2  val_1  val_2 max_id
0    a    q      1      2      q
1    b    w      2      0      b
2    c    e      3      0      c

max_id第一行是 q 因为val_2>val_1......

我可以通过以下方式获得最大值: df[["val_1", "val_2"]].max(axis=1)

并从中获取 ID 的列名:

index_map = {0:"id_1", 1:"id_2"}
df.apply(lambda x: [x.val_1, x.val_2].index(max([x.val_1, x.val_2])), axis=1).map(index_map)
# 0    id_2
# 1    id_1
# 2    id_1

但后来我的想法就消失了。

pandas
  • 1 个回答
  • 27 Views
Martin Hope
Bera
Asked: 2024-07-25 17:01:57 +0800 CST

获取边的累积权重,无需重复已经走过的路径

  • 7

我有一个水管网络,其中每个节点都是一栋房子,每条边都是连接房屋的管道。边具有水量属性。

我想计算到达节点 13 的总流量。

总结如下5+2+1+6+0+3+14+4+12+5+8+10+6+9=85

在此处输入图片描述

我尝试过类似的东西,但它会重复已经遍历过的路径。例如,我不想多次将节点 1 到 2(权重 5)的值相加:

import networkx as nx
from itertools import combinations

G = nx.DiGraph()

edges = [(1,2,5), (2,5,0), (3,2,2), (3,4,1), (4,5,6), (5,6,3), (7,8,14), (8,6,4), (6,9,12), (9,11,8), (10,9,5),(10,12,10), (11,12,6),(12,13,9)]

for edge in edges:
    n1, n2, weight = edge 
    G.add_edge(n1, n2, volume=weight)

for n1, n2 in combinations(G.nodes,2):
    paths = list(nx.all_simple_paths(G=G, source=n1, target=n2))
    for path in paths:
        total_weight = nx.path_weight(G=G, path=path, weight="volume")
        print(f"From node {n1} to {n2}, there's the path {'-'.join([str(x) for x in path])} \n with the total volume: {total_weight}")
        # From node 1 to 2, there's the path 1-2 
        # with the total volume: 5
        # From node 1 to 5, there's the path 1-2-5 
        # with the total volume: 5
        # From node 1 to 6, there's the path 1-2-5-6 
        # ...
python
  • 1 个回答
  • 29 Views
Martin Hope
BERA
Asked: 2024-01-17 03:27:31 +0800 CST

包含新列的字典列表的列

  • 6

我有一个数据框,column2其中每一行都有一个字典列表。

import pandas as pd
data = [{"id":1,
         "column1":123, 
         "column2":[{"a":1}, {"b":"X"}, {"c":'2023-01-16'}]}]

df = pd.DataFrame(data)
   # id  column1                                      column2
   # 1      123  [{'a': 1}, {'b': 'X'}, {'c': '2023-01-16'}]

我正在尝试从要创建的字典中创建三个新列:

#id   column1   a   b   c
# 1   123       1   X   2023-01-16

我试过这个:

df = df.explode(column="column2")
#    column1              column2
# 0      123             {'a': 1}
# 0      123           {'b': 'X'}
# 0      123  {'c': '2023-01-16'}
df["column2"].apply(pd.Series)
#           0           1                    2
# 0  {'a': 1}  {'b': 'X'}  {'c': '2023-01-16'}

但我无法让它按照我想要的方式工作。

我该如何解决这个问题?

python
  • 1 个回答
  • 36 Views
Martin Hope
BERA
Asked: 2023-11-14 15:43:09 +0800 CST

在其他列中的任意位置查找子字符串

  • 6

我的列中有字符串a。我想搜索列中的所有行b以查看是否a在某个位置找到了每个值b

import pandas as pd

data = {"a":["hi","hello","yes","xyz"],
        "b":["asdfHI", "qwertHello","nononoXYZ", "OKOK"]}
df = pd.DataFrame(data)

#        a           b
# 0     hi      asdfHI
# 1  hello  qwertHello
# 2    yes   nononoXYZ
# 3    xyz        OKOK

#hi, hello and xyz is somewhere in b. Yes isnt. I want to create the found column:

#        a           b      found
# 0     hi      asdfHI      True
# 1  hello  qwertHello      True
# 2    yes   nononoXYZ      False
# 3    xyz        OKOK      True

#This only search rowwise so xyz isnt found:
df.apply(lambda x: x.a.lower() in x.b.lower(), axis=1)
# 0     True
# 1     True
# 2    False
# 3    False

#[aval.lower() in df.b.str.lower() for aval in df.a]
#[False, False, False, False]

#df.b.str.lower().str.contains(df.a.str.lower())
#TypeError: unhashable type: 'Series'

#df.b.str.contains(df.a.str, case=False)
#TypeError: first argument must be string or compiled pattern
pandas
  • 2 个回答
  • 59 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve