選項0
from cytoolz import concat
list(set(concat(df.available_fruits.values.tolist())))
選項1
list({k: 1 for x in df.available_fruits.values.tolist() for k in x})
['apple', 'banana', 'tomato', 'kiwi']
選項2
左場...
from sklearn.preprocessing import MultiLabelBinarizer
MultiLabelBinarizer().fit(df.available_fruits).classes_.tolist()
['apple', 'banana', 'kiwi', 'tomato']
時序
結論:
results.div(results.min(1), 0).round(2).pipe(lambda d: d.assign(Best=d.idxmin(1)))
pir0 pir1 pir2 galt jez1 jez2 prgn Best
N
1 2.36 1.00 4.43 13.93 10.82 1.00 2.86 pir1
3 1.67 1.51 3.94 12.27 7.20 1.00 2.73 jez2
10 1.59 1.09 4.90 9.90 9.24 1.00 3.03 jez2
30 1.20 1.39 2.44 6.78 9.42 1.00 2.67 jez2
100 1.06 1.45 1.66 12.15 20.50 1.00 2.00 jez2
300 1.13 1.76 1.33 28.30 33.41 1.00 2.01 jez2
1000 1.00 1.70 1.11 111.74 32.79 1.18 1.95 pir0
3000 1.00 1.93 1.02 364.07 32.18 1.03 2.02 pir0
10000 1.08 1.87 1.00 1223.63 35.10 1.03 1.97 pir2
代碼
pir0 = lambda df: list(set(concat(df.available_fruits.values.tolist())))
pir1 = lambda df: list({k: 1 for x in df.available_fruits.values.tolist() for k in x})
pir2 = lambda df: MultiLabelBinarizer().fit(df.available_fruits).classes_.tolist()
galt = lambda df: list(set(df.available_fruits.sum()))
jez1 = lambda df: np.unique(np.concatenate(df['available_fruits'].values.tolist())).tolist()
jez2 = lambda df: list(set(chain.from_iterable(df.available_fruits.values.tolist())))
prgn = lambda df: list(set([val for lst in df.available_fruits for val in lst]))
results = pd.DataFrame(
index=pd.Index([1, 3, 10, 30, 100, 300, 1000, 3000, 10000, 30000], name='N'),
columns='pir0 pir1 pir2 galt jez1 jez2 prgn'.split(),
dtype=float
)
for i in results.index:
d = pd.concat([df] * i, ignore_index=True)
for j in results.columns:
stmt = '{}(d)'.format(j)
setp = 'from __main__ import d, {}'.format(j)
results.set_value(i, j, timeit(stmt, setp, number=10))
fig, (a1, a2) = plt.subplots(1, 2, figsize=(10, 10))
results.plot(loglog=True, ax=a1)
results.div(results.min(1), 0).round(2).plot.barh(logx=True, ax=a2)
我不敢回答,當我看到'問題dataframe'標籤,因爲我知道沒有人能夠擊敗jezrael說到熊貓,我很佩服你的哥們,從你們學到了很多東西,謝謝:) + 1 –
@akashkarothiya繼續嘗試好友。你有一天會到達那裏。哦,+1 btw。 –
謝謝@cᴏʟᴅsᴘᴇᴇᴅ:)對我來說這意味着很多 –