小编DPd*_*Pdl的帖子

返回与行中最大值相对应的列标题

我有一个如下所示的数据框:

case    inc_date    is1     is5     is10    im1     im5     im10
686     6/8/1972    0.141   0.300   0.149   0.134   0.135   0.142
950     6/1/1945    0.160   0.345   0.172   0.088   0.096   0.138
1005    10/16/1945  0.164   0.261   0.151   0.131   0.261   0.133
1005    11/12/1947  0.146   0.310   0.182   0.112   0.129   0.121
1180    10/9/1945   0.159   0.278   0.134   0.141   0.138   0.150
Run Code Online (Sandbox Code Playgroud)

我想找出每行中的最大值并返回值最大的列名。例如,对于上面的数据框,它将返回:

686 is5
950 is5
1005 is5, im5
1005 is5
1180 is5
Run Code Online (Sandbox Code Playgroud)

python max dataframe pandas

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

将矩阵的对角线元素替换为Python中该行中其他元素的总和

import pandas as pd
import numpy as np
rates=(pd.read_excel("C:\Anaconda3\RateMatrix.xlsx", sheetname="Pu239Test", skiprows=0)).as_matrix() #read the matrix values from excel spreadsheet, and converts the values to a matrix
Run Code Online (Sandbox Code Playgroud)

rates 是一个 22 x 22 矩阵。

我想用该行中所有其他元素的总和替换费率矩阵的对角元素。

例如,

rates.item(0,0) = rates.item(0,1)+rates.item(0,2)+rates.item(0,3)+....rates.item(0,21)

利率.项目(1,1) = 利率.项目(1,0)+利率.项目(1,2)+利率.项目(1,3)+....利率.项目(1,21)

……

rates.item(21,21) = rates.item(21,0)+rates.item(21,2)+rates.item(21,3)+....rates.item(21,20)

我想知道我怎样才能做到这一点。预先非常感谢。

python numpy matrix diagonal

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

在Python中使用文本文件

我正在阅读一个> 10,000行的文本文件.

results_file = open("Region_11_1_micron_o", 'r')
Run Code Online (Sandbox Code Playgroud)

我想在特定字符串"chart"之后跳转到文件中的行,该字符串出现在第no行附近.7000(不同文件不同).有没有办法方便地做到这一点,而无需阅读文件的每一行?

python text-files

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

删除列表中与另一个列表中的最大值不对应的项目

model_names = ['is1', 'is5', 'is10', 'im1', 'im5', 'im10']
Run Code Online (Sandbox Code Playgroud)

举个例子,

models = [0.1, 0.2, 0.1, 0.3, 0.2, 0.3]
Run Code Online (Sandbox Code Playgroud)

列表的最大值为0.3,对应于型号名称'im1'和'im10'.我喜欢这个功能

dominant_model(models)
Run Code Online (Sandbox Code Playgroud)

回来

['im1', 'im10']
Run Code Online (Sandbox Code Playgroud)

即,最"主导"的模型.


这是我的代码,它完成了这项工作,但我想知道是否有更短的方法来做同样的事情,而不是所有的条件:

def dominant_model(models):
    m = max(models)
    dom_models = [i for i,j in enumerate(models) if j==m]
    for i in range(len(dom_models)):
        if dom_models[i]==0:
            dom_models[i]=model_names[0]
        elif dom_models[i]==1:
            dom_models[i]=model_names[1]
        elif dom_models[i]==2:
            dom_models[i]=model_names[2]
        elif dom_models[i]==3:
            dom_models[i]=model_names[3]
        elif dom_models[i]==4:
            dom_models[i]=model_names[4]
        elif dom_models[i]==5:
            dom_models[i]=model_names[5]
    return dom_models 
Run Code Online (Sandbox Code Playgroud)

python replace list

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

替换熊猫数据框中的特定列值

df = pd.DataFrame({'Tissues':['a1','x2','y3','b','c1','v2','w3'], 'M':[1,2,'a',4,'b','a',7]})
df.set_index('Tissues')
Run Code Online (Sandbox Code Playgroud)

数据框看起来像:

         M
Tissues   
a1       1
x2       2
y3       a
b        4
c1       b
v2       a
w3       7
Run Code Online (Sandbox Code Playgroud)

如何将a列中的所有s替换M为特定值,2 以及所有bs 到 3?

我试过:

replace_values = {'a':2, 'b':3}
df['M'] = df['M'].map(replace_values)
Run Code Online (Sandbox Code Playgroud)

,但这将不在键中的其他值更改replace_valuesNaN

  Tissues    M
0      a1  NaN
1      x2  NaN
2      y3  2.0
3       b  NaN
4      c1  3.0
5      v2  2.0
6      w3  NaN
Run Code Online (Sandbox Code Playgroud)

我明白我可以做到

df.loc[(df['M'] == 'a')] = 2
Run Code Online (Sandbox Code Playgroud)

但是我可以对 a、b 等有效地执行此操作,而不是一个一个地执行此操作吗?

python dictionary replace dataframe pandas

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

csv python中最大的行数可以处理吗?

import csv
with open("C:\Anaconda3\FalkParameters\AllModels.csv","r") as f:
    reader = csv.reader(f)
    listofModels = list(reader)
Run Code Online (Sandbox Code Playgroud)

AllModels是一个巨大的csv文件(2.4 GB).我不确定那里有多少行,因为我无法用任何应用程序打开它(记事本,记事本++,excel等).

上面的代码运行正常,但如果我尝试打印"listofModels",控制台开始打印,但在某些时候我得到一个"ValueError:关闭文件的I/O操作".每次打印在不同的行停止.

我想知道是否有办法在python中处理巨大的csv文件.

python csv

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

标签 统计

python ×6

dataframe ×2

pandas ×2

replace ×2

csv ×1

diagonal ×1

dictionary ×1

list ×1

matrix ×1

max ×1

numpy ×1

text-files ×1