我一直在谷歌搜索这个问题的简单答案,但似乎没有一个.任何人都可以告诉我subprocess模块是否并行执行调用?Pythong.org文档建议它可以用来产生新的进程,但它没有提到它们是否并行.如果他们可以并行完成,你可以给我一个例子或链接我吗?
我希望使用pandas基于列名称(包含空格)和单元格值删除行.我已经尝试了各种方法来实现这一点(drop和query方法),但由于名称中的空格,我似乎失败了.有没有办法使用其中有空格的名称查询数据,或者我是否需要先清理所有空格?
数据以csv文件的形式
Date,"price","Sale Item"
2012-06-11,1600.20,item1
2012-06-12,1610.02,item2
2012-06-13,1618.07,item3
2012-06-14,1624.40,item4
2012-06-15,1626.15,item5
2012-06-16,1626.15,item6
2012-06-17,1626.15,item7
Run Code Online (Sandbox Code Playgroud)
尝试例子
df.drop(['Sale Item'] != 'Item1')
df.drop('Sale Item' != 'Item1')
df.drop("'Sale Item'] != 'Item1'")
df.query('Sale Item' != 'Item1')
df.query(['Sale Item'] != 'Item1')
df.query("'Sale Item'] != 'Item1'")
Run Code Online (Sandbox Code Playgroud)
大多数情况下收到错误
ImportError: 'numexpr' not found. Cannot use engine='numexpr' for query/eval if 'numexpr' is not installed
Run Code Online (Sandbox Code Playgroud) 现在我知道如何检查数据帧中多列的特定值.但是,我似乎无法弄清楚如何基于布尔响应执行if语句.
例如:
使用os.walk特定文件并将特定文件读入数据帧.
for root, dirs, files in os.walk(main):
filters = '*specificfile.csv'
for filename in fnmatch.filter(files, filters):
df = pd.read_csv(os.path.join(root, filename),error_bad_lines=False)
Run Code Online (Sandbox Code Playgroud)
现在检查跨多个列的数据帧.第一个值是列名(column1),下一个值是我在该列(香蕉)中查找的特定值.然后我检查另一列(column2)的特定值(绿色).如果这两个都是真的,我想执行一项特定的任务.但是如果它是假的我想做别的事情.
像这样的东西:
if (df['column1']=='banana') & (df['colour']=='green'):
do something
else:
do something
Run Code Online (Sandbox Code Playgroud) 我正在尝试解决如何使用pandas递归导航文件夹子文件夹,获取子文件夹中的每个文件并将其合并为每个子文件夹的一个 CSV 文件。
所以我在类似于下面的结构中有多个文件。我想获取每个子文件夹并将其各自的 CSV 合并到每个子文件夹中的一个文件中。请参阅第二个图示文件夹树。我pandas以前没有使用过,但我认为我在正确的轨道上,我正在努力为每个子文件夹制定逻辑。请参考下面我当前的代码。
*注意,每个 CSV 文件的列结构都相同。
合并前
Folder
Sub-Folder1
File1.csv
File2.csv
File3.csv
File4.csv
Sub-Folder2
File1.csv
File2.csv
Sub-Folder3
File1.csv
File2.csv
Run Code Online (Sandbox Code Playgroud)
合并后
Folder
Sub-Folder1
Final.csv
Sub-Folder2
Final.csv
Sub-Folder3
Final.csv
Run Code Online (Sandbox Code Playgroud)
当前代码
import pandas as pd
working_dir = "/dir/"
for root, dirs, files in os.walk(working_dir):
file_list = []
for filename in files:
file_list.append(root + "/" + filename)
df_list = [pd.read_table(file) for file in file_list]
final_df = pd.concat(df_list)
final_df.to_csv(root + "/" + "Final.csv")
Run Code Online (Sandbox Code Playgroud)
目前收到以下错误
ValueError: All objects passed …
我正在创建我的第一个python"应用程序",我有args或缺乏问题.如果我执行没有参数的脚本id期望一条消息说明使用情况,而是我得到以下错误
错误
unknown@ubuntu:~$ ./attack.py
Traceback (most recent call last):
File "./attack.py", line 60, in <module>
main(sys.argv[1:])
File "./attack.py", line 57, in main
print fread(FWORD)
File "./attack.py", line 19, in fread
flist = open(FWORD).readlines()
TypeError: coercing to Unicode: need string or buffer, NoneType found
Run Code Online (Sandbox Code Playgroud)
码
#!/usr/bin/python
import sys, getopt, socket, fileinput, traceback
from Queue import Queue
from threading import Thread
def usage():
print "-h --help: help\n"
print "-f --file: File to read potential Sub-domains from.\n"
print "-p --PROXY: PROXY address and …Run Code Online (Sandbox Code Playgroud) 我一直在尝试各种方法来过滤f.read(). 除了多个单独的循环之外,我似乎找不到一个能按我的预期工作的解决方案,但我拒绝相信没有更优雅的解决方案。
我正在尝试做类似的事情:
if 'string' or 'string2' or 'string3' in f.read():
Run Code Online (Sandbox Code Playgroud)
我尝试了一些变化,例如:
if ('string1', 'string2','string3') in f.read():
if f.read() ('string1', 'string2','string3'):
Run Code Online (Sandbox Code Playgroud)
当然,我还没有找到一种按照我期望的方式工作的方法,并且由于谷歌和文档都未能做到这一点,有人可以启发我吗?
经过 Kasramvd 的启发,下面的展示既优雅又实用。特别注意结局线。
check_list = ['string1', 'string2', 'string3']
for filename in files:
f = open(root + filename)
fi = f.read()
if any(i in fi for i in check_list):
Run Code Online (Sandbox Code Playgroud) 我正在寻找获取搅拌列表的最佳方法,生成一个新列表,其中包含上一个列表中与特定字符串连接的每个项目.
示例sudo代码
list1 = ['Item1','Item2','Item3','Item4']
string = '-example'
NewList = ['Item1-example','Item2-example','Item3-example','Item4-example']
Run Code Online (Sandbox Code Playgroud)
尝试
NewList = (string.join(list1))
#This of course makes one big string
Run Code Online (Sandbox Code Playgroud) 我试图\n从函数中创建的列表中删除.我删除它的代码似乎没有用.我也没有得到错误?
码
#!/usr/bin/python
"""
Description:
Basic Domain bruteforcer
Usage:
your_script.py (-f <file>) (-d <domain>) [-t 10] [-v]
your_script.py -h | --help
Arguments:
-f --file File to read potential Sub-domains from. (Required)
-d --domain Domain to bruteforce. (Required)
Options:
-h --help Show this screen.
-p --proxy Proxy address and port. [default: http://127.0.0.1:8080] (Optional)
-t --thread Thread count. (Optional)
-v --verbose Turn debug on. (Optional)
"""
from docopt import docopt
def fread(dwords, *args):
flist = open(dwords).readlines()
#print current list
print …Run Code Online (Sandbox Code Playgroud) 我希望匹配列表中的项目并将该项目放入变量.下面是我到目前为止所做的,但目前我不知道如何创建正则表达式我需要匹配只有1项,我不知道这是否是最好的方法.我试图将列表中的项目与"/ site-packages"匹配到最后.
测试数据(站点输出)
['/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/site-python', '/Library/Python/2.7/site-packages']
Run Code Online (Sandbox Code Playgroud)
码
import site
import re
sites = site.getsitepackages()
print sites
site = re.compile('*/site-packages')
for item in sites:
m = site.search(item)
if m:
print m
Run Code Online (Sandbox Code Playgroud)