我想选择数据框中的行,这些行在列列表的每列中都为零.例如这个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)
应该很简单,但我的日子很慢!
我想向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) 我有一个操作物理设备的脚本。设备有时会发生物理故障,当发生故障时,我想重置设备并继续执行脚本。我有这个:
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化的方法?
当我使用 pycharm 编写 python 脚本时,我经常想突出显示我正在处理的一段代码。例如,在一天结束时,这样我可以在第二天快速找到它,或者如果我想检查另一段代码,则可以快速返回到我正在处理的部分。
例如,如果我正在编写 Word 文档,我可能会暂时突出显示文本,以便可以快速找到它。
pycharm中是否可以在代码中使用临时突出显示或标记?
我正在尝试替换某些文件中\的某些字符(因为我正在从 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)
我可以替换任何其他字符,但\会导致问题,大概是因为它试图将字符串解释为路径?
我究竟做错了什么??