Skip to content

Instantly share code, notes, and snippets.

@milo0
milo0 / keybaseproof.md
Created June 28, 2019 13:37
Keybase proof

Keybase proof

I hereby claim:

  • I am milo0 on github.
  • I am milo0 (https://keybase.io/milo0) on keybase.
  • I have a public key ASAqn1wF5KMGkvNvjpY9IlULdDb0H4ucexTqCLm6Jlkvrwo

To claim this, I am signing this object:

@milo0
milo0 / convert_table_to_df.py
Created December 3, 2017 15:42
Convert tables posted on StackOverflow to pandas DataFrames
import pandas as pd
with open('table.txt') as f:
content = f.readlines()
columns = content.pop(0)
content_list = [row.split() for row in content]
df = pd.DataFrame(columns=columns, data=content_list)
@milo0
milo0 / concat_npa_rowwise.py
Created December 3, 2017 15:24
Concatenate numpy arrays row-wise
def concatenate_per_row(A, B):
m1,n1 = A.shape
m2,n2 = B.shape
out = np.zeros((m1, m2, n1+n2), dtype=A.dtype)
out[:, :, :n1] = A[:, None, :]
out[:, :, n1:] = B
return out.reshape(m1*m2, -1)
@milo0
milo0 / spinning_cursor.py
Created December 3, 2017 15:22
Spinning cursor
import itertools, sys
from time import sleep
spinner = itertools.cycle(['|', '/', '-', '\\'])
while True:
sys.stdout.write(next(spinner)) # write the next character
sys.stdout.flush() # flush stdout buffer (actual character display)
sys.stdout.write('\b') # erase the last written char
sleep(0.1)
@milo0
milo0 / merge_dfs.py
Created December 3, 2017 15:20
Merge two pandas DataFrames
def merge_dfs(df1, df2):
"""Merge two DataFrames. Common columns among the dfs are reduced to one."""
res = pd.merge(df1, df2, how='outer', left_index=True, right_index=True)
cols = sorted(res.columns)
pairs = []
for col1, col2 in zip(cols[:-1], cols[1:]):
if col1.endswith('_x') and col2.endswith('_y'):
pairs.append((col1, col2))
for col1, col2 in pairs:
res[col1[:-2]] = res[col1].combine_first(res[col2])
@milo0
milo0 / extract_numeric.py
Created December 3, 2017 15:18
Extract numeric values from a string
def extract_integers(string):
extracted_ints = [int(s) for s in string.split() if s.isdigit()]
return extracted_ints
def extract_floats(string):
floats = []
for s in string.split():
try:
extracted_floats.append(float(s))