小编doc*_*rer的帖子

选择列中只有零的行

我想选择数据框中的行,这些行在列列表的每列中都为零.例如这个df:

In: 
    df = pd.DataFrame([[1,2,3,6], [2,4,6,8], [0,0,3,4],[1,0,3,4],[0,0,0,0]],columns =['a','b','c','d'])
    df

Out:
    a   b   c   d
0   1   2   3   6
1   2   4   6   8
2   0   0   3   4
3   1   0   3   4
4   0   0   0   0
Run Code Online (Sandbox Code Playgroud)

然后:

In:
    mylist = ['a','b']
    selection = df.loc[df['mylist']==0]
    selection
Run Code Online (Sandbox Code Playgroud)

我想看看:

Out:      
    a   b   c   d
2   0   0   3   4
4   0   0   0   0
Run Code Online (Sandbox Code Playgroud)

应该很简单,但我的日子很慢!

python dataframe pandas

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

将pandas dataframe列转换为np.datetime64

我想向np.datetime64已从包含年,月,日,小时和分钟的列的.csv文件读取的熊猫数据框中添加一列,并将其用作索引。我将单独的列组合在一起,以形成一列日期时间字符串。

import numpy as np
import pandas as pd
filename = 'test.csv'
df = pd.read_csv(filename, header=0, usecols = [2,3,4,5,6], names = ['y','m','d','h','min'],dtype = {'y':'str','m':'str','d':'str','h':'str','min':'str'})  #read csv file into df
df['datetimetext'] = (df['y']+'-'+df['m']+'-'+df['d']+' '+df['h']+':'+df['min']+':00')
Run Code Online (Sandbox Code Playgroud)

因此,数据框如下所示:

           y   m   d   h min    datetimetext  
0       1993  09  06  00  30    1993-09-06 00:30:00
1       1993  09  06  01  00    1993-09-06 01:00:00
2       1993  09  06  01  30    1993-09-06 01:30:00
3       1993  09  06  02  00    1993-09-06 02:00:00
4       1993  09  06  02  30 …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas datetime64

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

处理异常后恢复的Pythonic方法

我有一个操作物理设备的脚本。设备有时会发生物理故障,当发生故障时,我想重置设备并继续执行脚本。我有这个:

while True:
    do_device_control()
    device_status = get_device_status()
    if device_status == 'Fault':
        reset_device()
Run Code Online (Sandbox Code Playgroud)

在我看来,更整洁/更Python化的方法会引发异常:

try:
    while True:
        do_device_control()
        device_status = get_device_status()
        if device_status == 'Fault':
            raise DeviceFaultException()

except DeviceFaultException:
    reset_device()
Run Code Online (Sandbox Code Playgroud)

但是据我所知,在重置设备后无法恢复脚本。有没有一种方法可以使这种情况下的异常处理有效,或者比我目前使用的更Python化的方法?

python resume exception

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

如何在pycharm中突出显示代码?

当我使用 pycharm 编写 python 脚本时,我经常想突出显示我正在处理的一段代码。例如,在一天结束时,这样我可以在第二天快速找到它,或者如果我想检查另一段代码,则可以快速返回到我正在处理的部分。

例如,如果我正在编写 Word 文档,我可能会暂时突出显示文本,以便可以快速找到它。

pycharm中是否可以在代码中使用临时突出显示或标记?

highlight pycharm

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

替换 python / pandas 中的反斜杠

我正在尝试替换某些文件中\的某些字符(因为我正在从 Windows 迁移到 Linux,并且需要修改文件中列出的路径名。)。/csv.csv

我有这个:

 import pandas as pd
 file = 'my_file.csv'
 df = pd.read_csv(file)
 df = df.replace('\','/')
 df.to_csv(file)
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

file "<ipython-input-29-9556415d69a6>", line 5
    df = df.replace('\','/')
                            ^
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)

我可以替换任何其他字符,但\会导致问题,大概是因为它试图将字符串解释为路径?

我究竟做错了什么??

python string path pandas

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

标签 统计

python ×4

pandas ×3

dataframe ×1

datetime64 ×1

exception ×1

highlight ×1

numpy ×1

path ×1

pycharm ×1

resume ×1

string ×1