我有这样的清单
[0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,1]
Run Code Online (Sandbox Code Playgroud)
我想将它们分组,然后找出每组的长度.结果将是这样的:
[[2,0],[3,1].....[4,1]]
Run Code Online (Sandbox Code Playgroud) 我使用熊猫阅读了一个csv文件。然后,使用以下代码检查数据中是否有重复的行:
import pandas as pd
df= pd.read_csv("data.csv", na_values=["", " ", "-"])
print df.shape
>> (71644, 15)
print df.drop_duplicates().shape
>> (31171, 15)
Run Code Online (Sandbox Code Playgroud)
我发现有一些重复的行,所以我想看看哪些行出现了多次:
data_groups = df.groupby(df.columns.tolist())
size = data_groups.size()
size[size > 1]
Run Code Online (Sandbox Code Playgroud)
这样我就知道了Series([], dtype: int64)
。
此外,我可以执行以下操作找到重复的行:
duplicates = df[(df.duplicated() == True)]
print duplicates.shape
>> (40473, 15)
Run Code Online (Sandbox Code Playgroud)
因此df.drop_duplicates()
,df[(df.duplicated() == True)]
表明有重复的行,但groupby
没有。
我的数据由字符串,整数,浮点数和nan组成。
我是否误解了上面提到的功能中的某些内容或发生了其他事情?
我正在尝试获取过去 x 值的滚动平均值。通过查看文档,滚动方法似乎包含最后一个值。
上述行为可以在文档的以下示例中看到:
In [51]: ser = pd.Series(np.random.randn(10), index=pd.date_range('1/1/2000', periods=10))
In [52]: ser.rolling(window=5, win_type='triang').mean()
Out[52]:
2000-01-01 NaN
2000-01-02 NaN
2000-01-03 NaN
2000-01-04 NaN
2000-01-05 -1.037870
2000-01-06 -0.767705
2000-01-07 -0.383197
2000-01-08 -0.395513
2000-01-09 -0.558440
2000-01-10 -0.672416
Freq: D, dtype: float64
Run Code Online (Sandbox Code Playgroud)
在我的具体情况下,使用 5 作为窗口将获取 2000-01-01 到 2000-01-05 的平均值,并将其显示在 2000-01-06 上。
下面是一个比较有代表性的例子:
Team 1994 1995 1996 1997 1998 1999
Team 1 4 1 4 10 2 1
Team 2 2 5 1 2 1 4
Team 3 4 1 7 3 9 …
Run Code Online (Sandbox Code Playgroud) 我正在扫描旧照片,所以我有扫描仪的图像和白色背景。我的目标是拍照,去除白色背景。我怎样才能做到这一点 ?
示例图片如下:
我的简单方法:
import os
import time
from PIL import Image
from collections import Counter
import numpy as np
def get_cropped_image(image, crop_folder, threshold):
image_name = image.split("\\")[-1]
im = Image.open(image)
pixels = im.load()
width, height = im.size
rows = []
for h_index in xrange(height):
row = []
for w_index in xrange(width):
row.append(pixels[((w_index, h_index))])
color_count = Counter(row)[(255, 255, 255)] / float(len(row))
rows.append([h_index, color_count])
columns = []
for w_index in xrange(width):
column = []
for h_index in xrange(height):
column.append(im.getpixel((w_index, h_index)))
color_count = …
Run Code Online (Sandbox Code Playgroud) 为了改善我的编码,我想知道应该将try / except放在函数内部还是将其放在外部。以下示例显示了我的意思。
import pandas as pd
df = pd.read_csv("data.csv")
# Example 1
def do_something(df):
# Add some columns
# Split columns
return df
try:
df = do_something(df)
except Exception, e:
print e
# Example 2
def do_something(df):
try:
# Add some columns
# Split columns
except Exception, e:
print e
df = pd.DataFrame()
return df
df = do_something(df)
Run Code Online (Sandbox Code Playgroud)
看起来似乎相同,但是第一个示例更清楚地说明了发生的情况,而第二个示例似乎更清晰。
在我的一个模型中,我有以下内容:
time = models.TimeField()
Run Code Online (Sandbox Code Playgroud)
在基于此模型的模型表单中,我希望time
成为一个包含几个选项的下拉菜单,所以我尝试了以下操作:
time = forms.TimeField(label="time", choices=[(datetime.time(0, 0), "Midnight"), (datetime.time(12, 0), "Noon")])
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError: __init__() got an unexpected keyword argument 'choices'
Run Code Online (Sandbox Code Playgroud)
我是否必须在模型的时间字段中进行选择,或者有没有办法在表单中定义它?
我有一个弹出对话框的问题.我有一个组合框,当选项更改时,弹出一个带有textedit小部件的对话框,做一些东西并在textedit小部件中插入一些文本.
这就是我用于弹出窗口的内容:
def function_1(self):
dialog = QDialog()
dialog.ui = Ui_Dialog_popup()
dialog.ui.setupUi(dialog)
dialog.setAttribute(QtCore.Qt.WA_DeleteOnClose)
dialog.exec_()
Run Code Online (Sandbox Code Playgroud)
我在QtDesignere中使用弹出的gui代码在一个单独的py文件中.
弹出对话框出现,但是如果没有关闭对话框,则无法执行任何其他操作.您知道我该如何处理这个问题?谢谢.
我有一个数据框,我使用groupby按Season对它进行分组。原始df的一列名为Check,由True和False组成。我的目标是计算每个组的True值并将其放入新的数据框中。
import pandas as pd
df = ....
df['Check'] = df['Actual'] == df['Prediction']
grouped_per_year = df.groupby('Season')
df_2= pd.DataFrame()
df_2['Seasons'] = total_matches_per_year.keys()
df_2['Successes'] = ''
df_2['Total_Matches'] = list(grouped_per_year.size())
df_2['SR'] = df_2['Successes'] / df_2['Total_Matches']
df_2['Money_In'] = list(grouped_per_year['Money_In'].apply(sum))
df_2['Profit (%)'] = (df_profit['Money_In'] - df_profit['Total_Matches']) / df_profit['Total_Matches'] * 100.
Run Code Online (Sandbox Code Playgroud)
我试过了:
successes_per_year = grouped_per_year['Pred_Check'].value_counts()
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何只获得真实的计数。
我正在使用Bootstrap 4和带有图像叠加层的卡在图像上放置一些文本。文本显示在图像的顶部,而我希望它显示在底部。
这是卡的html代码:
<div class="card-deck">
{% for article in article_list|slice:":3" %}
<div class="card card-inverse align-self-center">
<div class="card-header text-center">
{{ article.category|capfirst }}
</div>
<img class="card-img" src="{% static article.image %}" alt="Card image cap">
<div class="card-img-overlay">
<h4 class="card-title">{{ article.title }}</h4>
</div>
</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我正在使用 django 导入导出并将ImportExportModelAdmin
数据从文件导入到管理界面的数据库中。
以下是我使用的模型资源:
class ImportedBetResource(resources.ModelResource):
date = fields.Field(column_name='Date',
attribute='date',
widget=DateWidget(format="%d/%m/%Y"))
time = fields.Field(column_name='Time',
attribute='time',
widget=TimeWidget(format="%H:%M"))
sport = fields.Field(column_name='Sport',
attribute='sport',
widget=ForeignKeyWidget(Sport, 'name'))
country = fields.Field(column_name='Country',
attribute='country',
widget=ForeignKeyWidget(Country, 'name'))
bookie = fields.Field(column_name='Bookie',
attribute='bookie',
widget=ForeignKeyWidget(Bookie, 'name'))
currency = fields.Field(column_name='Currency',
attribute='stake_currency',
widget=ForeignKeyWidget(Currency, 'name'))
odds = fields.Field(column_name="Odds",
attribute="odds",
widget=DecimalWidget())
status = fields.Field(column_name='Status',
attribute='status',
widget=ForeignKeyWidget(Status, 'name'))
class Meta:
model = Bet
fields = ("id", "date", "time", "sport",
"country",
"competition", "home",
"visitor",
"bookie", "bet", "stake",
"currency",
"odds", "status")
clean_model_instances = True
@classmethod
def field_from_django_field(self, …
Run Code Online (Sandbox Code Playgroud)