我有一个来自AG列的数据文件,如下所示,但当我阅读它时,pd.read_csv('data.csv')
它会unnamed
在最后打印一个额外的列,无缘无故.
colA ColB colC colD colE colF colG Unnamed: 7
44 45 26 26 40 26 46 NaN
47 16 38 47 48 22 37 NaN
19 28 36 18 40 18 46 NaN
50 14 12 33 12 44 23 NaN
39 47 16 42 33 48 38 NaN
Run Code Online (Sandbox Code Playgroud)
我已经看过不同时间的数据文件,但我在其他任何列中都没有额外的数据.如何在阅读时删除这个额外的列?谢谢
我有两个图像,一个只有背景,另一个有背景+可检测物体(在我的例子中是一辆汽车).以下是图片
我正在尝试删除背景,以便我在生成的图像中只有汽车.以下是我试图获得所需结果的代码
import numpy as np
import cv2
original_image = cv2.imread('IMG1.jpg', cv2.IMREAD_COLOR)
gray_original = cv2.cvtColor(original_image, cv2.COLOR_BGR2GRAY)
background_image = cv2.imread('IMG2.jpg', cv2.IMREAD_COLOR)
gray_background = cv2.cvtColor(background_image, cv2.COLOR_BGR2GRAY)
foreground = np.absolute(gray_original - gray_background)
foreground[foreground > 0] = 255
cv2.imshow('Original Image', foreground)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)
通过减去两个图像得到的图像是
这是问题所在.预期的结果图像应该只是一辆汽车.此外,如果你深入研究两张图像,你会发现它们不完全相同,相机移动了一点,所以背景受到了一点干扰.我的问题是,使用这两个图像我怎样才能减去背景.我现在不想使用grabCut或backgroundSubtractorMOG算法,因为我现在还不知道这些算法里面有什么.
如果可能的话,请指导我这样做的一般方法,不仅在这个特定的情况下,我在一个图像中有背景,在第二个图像中有背景+对象.这可能是最好的方法.对不起这么长的问题.
我试图在图像中获得框的角落.以下是示例图像,它们的阈值结果以及箭头后面的右侧是我需要的结果.您可能在松弛之前看过这些图像,因为我正在使用这些图像来解决松弛的示例问题.
以下是允许我到达中间图像的代码.
import cv2
import numpy as np
img_file = 'C:/Users/box.jpg'
img = cv2.imread(img_file, cv2.IMREAD_COLOR)
img = cv2.blur(img, (5, 5))
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(hsv)
thresh0 = cv2.adaptiveThreshold(s, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
thresh1 = cv2.adaptiveThreshold(v, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
thresh2 = cv2.adaptiveThreshold(v, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
thresh = cv2.bitwise_or(thresh0, thresh1)
cv2.imshow('Image-thresh0', thresh0)
cv2.waitKey(0)
cv2.imshow('Image-thresh1', thresh1)
cv2.waitKey(0)
cv2.imshow('Image-thresh2', thresh2)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)
opencv中是否有任何方法可以为我做到这一点.我尝试过扩张cv2.dilate()
和糜烂cv2.erode()
但是在我的情况下它不起作用.如果没有,那么可能有什么方法可以做到这一点?谢谢
Canny版本的图像...左侧低阈值,右侧高阈值
列表可以创建n次:
a = [['x', 'y']]*3 # Output = [['x', 'y'], ['x', 'y'], ['x', 'y']]
Run Code Online (Sandbox Code Playgroud)
但是我希望以这种方式创建一个元组,但它不会返回与列表中类似的结果.我正在做以下事情:
a = (('x','y'))*4 # Output = ('x', 'y', 'x', 'y', 'x', 'y', 'x', 'y')
Expected_output = (('x', 'y'), ('x', 'y'), ('x', 'y'), ('x', 'y'))
Run Code Online (Sandbox Code Playgroud)
有什么建议 ?谢谢.
我有一个excel表,有多个标题,如:
_________________________________________________________________________
____|_____| Header1 | Header2 | Header3 |
ColX|ColY |ColA|ColB|ColC|ColD||ColD|ColE|ColF|ColG||ColH|ColI|ColJ|ColDK|
1 | ds | 5 | 6 |9 |10 | .......................................
2 | dh | ..........................................................
3 | ge | ..........................................................
4 | ew | ..........................................................
5 | er | ..........................................................
Run Code Online (Sandbox Code Playgroud)
现在,您可以看到前两列没有标题,它们是空白的,但其他列的标题如Header1,Header2和Header3.所以我想阅读这张表并将其与其他具有类似结构的表合并.
我想在第一栏'ColX'上合并它.现在我这样做:
import pandas as pd
totalMergedSheet = pd.DataFrame([1,2,3,4,5], columns=['ColX'])
file = pd.ExcelFile('ExcelFile.xlsx')
for i in range (1, len(file.sheet_names)):
df1 = file.parse(file.sheet_names[i-1])
df2 = file.parse(file.sheet_names[i])
newMergedSheet = pd.merge(df1, df2, on='ColX')
totalMergedSheet = pd.merge(totalMergedSheet, newMergedSheet, on='ColX')
Run Code Online (Sandbox Code Playgroud)
但我不知道它的读取列是否正确,我认为不会以我想要的方式返回结果.所以,我希望得到的框架应该像:
________________________________________________________________________________________________________
____|_____| …
Run Code Online (Sandbox Code Playgroud) 我已经成功使用了pandas.read_csv
很长时间但突然它在我尝试读取csv文件时开始出错
df = pd.read_csv('file.csv', encoding='utf-8')
Run Code Online (Sandbox Code Playgroud)
错误是
AttributeError: module 'pandas' has no attribute 'read_csv'
Run Code Online (Sandbox Code Playgroud)
我试图升级熊猫但不起作用.我试图搜索并得到这个答案,但当我在我的熊猫中搜索csv.py文件时,我没有找到任何答案.所以我试图将鼠标悬停在pandas.read_csv
需要我提交的方法上parsers.py
.但是在该文件中没有命名的特定方法,read_csv
但它指向另一个像这样的解析器函数
# parser.py (built-in file in pandas) file has this implementation
read_csv = _make_parser_function('read_csv', sep=',')
read_csv = Appender(_read_csv_doc)(read_csv)
Run Code Online (Sandbox Code Playgroud)
我不明白它应该如何重新开始工作?有什么建议
我安装了Hadoop并且工作正常,因为我运行了单词计数示例,它运行良好.现在我试着继续前进并做一些更实际的例子.我的例子在本网站上作为例子2(每个部门的平均工资)完成.我使用的是网站上的相同代码和这些数据
mapper.py
#!usr/bin/Python
# mapper.py
import csv
import sys
reader = csv.reader(sys.stdin, delimiter=',')
writer = csv.writer(sys.stdout, delimiter='\t')
for row in reader:
agency = row[3]
annualSalary = row[5][1:].strip()
print '{0}\t{1}'.format(agency, annualSalary)
Run Code Online (Sandbox Code Playgroud)
reducer.py
#!usr/bin/Python
# reducer.py
import csv
import sys
agency_salary_sum = 0
current_agency = None
n_occurences = 0
for row in sys.stdin:
data_mapped = row.strip().split("\t")
if len(data_mapped) != 2:
# Something has gone wrong. Skip this line.
continue
agency, salary = data_mapped
try: salary = float(salary)
except: continue …
Run Code Online (Sandbox Code Playgroud) 我有一个盒子的图像.我正在尝试检测角落并从圆圈标记这些角落.我使用以下代码:
import cv2
import numpy as np
img_file = 'Image.jpg'
img = cv2.imread(img_file, cv2.IMREAD_COLOR)
imgDim = img.shape
dimA = imgDim[0]
dimB = imgDim[1]
# RGB to Gray scale conversion
img_gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
# Noise removal with iterative bilateral filter(removes noise while preserving edges)
noise_removal = cv2.bilateralFilter(img_gray,9,75,75)
# Thresholding the image
ret,thresh_image = cv2.threshold(noise_removal,220,255,cv2.THRESH_OTSU)
th = cv2.adaptiveThreshold(noise_removal, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)
# Applying Canny Edge detection
canny_image = cv2.Canny(th,250,255)
canny_image = cv2.convertScaleAbs(canny_image)
# dilation to strengthen the edges
kernel = …
Run Code Online (Sandbox Code Playgroud) 我试图生成一些随机时间序列,其中包括周期性(例如销售),指数级下降(例如,Facebook喜欢帖子),指数级增长(例如比特币价格),通常增加(股票代码)等等.我可以产生一般性增长/减少时间序列如下
import numpy as np
import pandas as pd
from numpy import sqrt
import matplotlib.pyplot as plt
vol = .030
lag = 300
df = pd.DataFrame(np.random.randn(100000) * sqrt(vol) * sqrt(1 / 252.)).cumsum()
plt.plot(df[0].tolist())
plt.show()
Run Code Online (Sandbox Code Playgroud)
但我不知道如何产生周期性趋势或指数增加或减少趋势.有没有办法做到这一点 ?
Pyevolve 通常用于 python 2.7。有什么办法可以在 python 3 中安装和使用 pyevolve 吗?我知道还有另一个包 DEAP 用于与 python 3 兼容的遗传算法,但不知何故我必须使用 pyevolve。
我尝试过,但我认为它不受支持,所以 pip install pyevolve 抛出错误。