python - 从具有相似前缀的列中划分元素

标签 python pandas dataframe prefix divide

我有以下数据框:

df = pd.DataFrame(list(zip([1,2],
           [5,6],
           [9,10],
           [13,14])))
df.columns =['x_A', 'y_A', 'x_B', 'y_B']
df:
    x_A y_A x_B y_B
  0 1   5   9   13
  1 2   6   10  14

我想划分具有相似前缀的列以获得以下结果:

df: 
    x    y
 0  1/9  5/13
 1  2/10 6/14

如果可能的话,可以用一行来完成吗?

谢谢。

最佳答案

一种方法:

def divide_reduce(x):
    y = x.to_numpy().astype(np.float64)
    return np.divide.reduce(y, axis=1)

res = df.groupby(df.columns.str[0], axis=1).agg(divide_reduce)
print(res)

输出

          x         y
0  0.111111  0.384615
1  0.200000  0.428571

如果您更喜欢单行方法,您可以使用:

res = df.astype(np.float64).groupby(df.columns.str[0], axis=1).agg(np.divide.reduce, axis=1)

关于python - 从具有相似前缀的列中划分元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69780782/

相关文章:

r - 在返回多个值的 apply 函数中处理 NA 值

r - 我需要将列 "transpose"中两个文本字符串之间的数字复制到第一个文本字符串旁边的列

python - 使用 for 循环将方法分配给 QScrollbars 的 valueChanged 信号似乎不起作用

Python:获取 PyObject 的字符串表示?

python - Scapy 无法启动

python - 如何使用 matplotlib 和 pandas 绘制日期时间与值的线性趋势线?

python - Pandas 日期计算

python - 循环 sys.args

python - Pandas:如果字符串存在于几列中的任何一列中,我想对计数进行求和,并将该计数添加到具有搜索术语的另一个数据框中

python - 根据标准分析一列数据框的数据