Skip to content

Instantly share code, notes, and snippets.

View tdsmith's full-sized avatar

Tim D. Smith tdsmith

View GitHub Profile
library(plyr)
library(dplyr)
donors = read.csv("donors.csv", header=TRUE, stringsAsFactors=FALSE,
na.strings=c("", " "))
names(donors) = tolower(names(donors))
library(lubridate)
donors$donation_time = parse_date_time(donors$donation_time,
orders=c("ymdhms", "mdyImsp"),
tz="America/Chicago")
donors[which.min(donors$donation_time), "donation_time"] = as.POSIXct("2014/05/01 00:00", tz="America/Chicago")
import cairo
import numpy as np
from PIL import Image
# imdata is a 2D numpy array of dtype np.uint8 containing grayscale pixel intensities on [0, 255]
# repeat for each of R, G, B, and add a deck of 255s for alpha
cairo_imdata = np.dstack([imdata, imdata, imdata, np.ones_like(imdata)*255])
surface = cairo.ImageSurface.create_for_data(cairo_imdata, cairo.FORMAT_ARGB32, *(reversed(imdata.shape)))
# create a context and do some doodling
@tdsmith
tdsmith / -
Created August 22, 2014 01:51
>>> s = pd.Series(["foo", "bar", "bar"])
>>> t = pd.Series(["foo", "bar", "baz"])
>>> s.value_counts() - t.value_counts()
bar 1
baz NaN
foo 0
>>> s = pd.Series([0,1,1])
>>> t = pd.Series(['foo', 'bar', 'baz'])
>>> map = pd.Series({0: 'foo', 1: 'bar', 2: 'baz'})
>>> map[s]
0 foo
1 bar
1 bar
dtype: object
>>> map[s].value_counts() - t.value_counts()
bar 1
@tdsmith
tdsmith / -
Created September 15, 2014 20:20
> a = data.frame(foo=c(1,2,3), bar=c(-1,2,-3))
> a
foo bar
1 1 -1
2 2 2
3 3 -3
> ifelse(a$bar < 0, -a$bar, a$bar)
[1] 1 2 3
>

On a narrow build:

>>> ghost = u'👻'
>>> repr(ghost)
"u'\\U0001f47b'"
>>> print u'\U0001f47b'
👻
>>> g = 0x0001f47b
>>> unichr(g)

Traceback (most recent call last):

diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
index d69c626..2552d6d 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
+++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
@@ -221,7 +221,7 @@ void QtUserSearchWindow::setSearchFields(boost::shared_ptr<SearchPayload> fields
fieldsPage_->setFormWidget(new QtFormWidget(fields->getForm(), fieldsPage_));
} else {
fieldsPage_->setFormWidget(NULL);
- bool enabled[8] = {fields->getNick(), fields->getNick(), fields->getFirst(), fields->getFirst(), fields->getLast(), fields->getLast(), fields->getEMail(), fields->getEMail()};
+ bool enabled[8] = {!!fields->getNick(), !!fields->getNick(), !!fields->getFirst(), !!fields->getFirst(), !!fields->getLast(), !!fields->getLast(), !!fields->getEMail(), !!fields->getEMail()};
require "formula"
class Hatari < Formula
homepage "http://hatari.tuxfamily.org"
head "http://hg.tuxfamily.org/mercurialroot/hatari/hatari", :using => :hg, :branch => "default"
url "http://download.tuxfamily.org/hatari/1.8.0/hatari-1.8.0.tar.bz2"
sha1 "08d950c3156c764b87ac0ae03c4f350febff9567"
depends_on :x11
depends_on "cmake" => :build
require "formula"
class Hatari < Formula
homepage "http://hatari.tuxfamily.org"
head "http://hg.tuxfamily.org/mercurialroot/hatari/hatari", :using => :hg, :branch => "default"
url "http://download.tuxfamily.org/hatari/1.8.0/hatari-1.8.0.tar.bz2"
sha1 "08d950c3156c764b87ac0ae03c4f350febff9567"
depends_on :x11
depends_on "cmake" => :build
In [1]: import pandas as pd
In [2]: df = pd.DataFrame({'foo': ['a', 'a', 'b', 'b'], 'bar': [1,2,3,4]})
In [3]: g = df.groupby('foo')
In [5]: for group in g:
...: print(group)
...:
('a', bar foo