AMcoder - javascript, python, java, html, php, sql

Բազմապատկեք երկու panda տվյալների շրջանակները միասին՝ տվյալները որոշակի քանակությամբ կրկնելու համար [կրկնօրինակ]

Ասեք, որ ես ունեմ երկու տվյալների շրջանակ, և դրանք հետևյալն են.

1/31
2/28
3/31

և.

black    dog
white    dog
orange   cat

Ես ուզում եմ, որ իմ արդյունքում ստացված տվյալների շրջանակը լինի հետևյալը.

1/31   black   dog
1/31   white   dog
1/31   orange  cat
2/28   black   dog
2/28   white   dog
2/28   orange  cat
3/31   black   dog
3/31   white   dog
3/31   orange  cat

Կա՞ հեշտ մատրիցային բազմապատկում այս երկու պանդա տվյալների շրջանակները միասին բազմապատկելու համար: Ես անծանոթ եմ դա անելու շարահյուսությանը, և եթե կարող եմ, կուզենամ խուսափել միաձուլումից/հնարավորության դեպքում:

04.08.2017

Պատասխանները:


1

Դա անելու եղանակներից մեկը pd.merge օգտագործելն է:

df1.assign(key=1).merge(df2.assign(key=1), on='key').drop('key', axis=1)

Արդյունք:

    0_x     0_y    1
0  1/31   black  dog
1  1/31   white  dog
2  1/31  orange  cat
3  2/28   black  dog
4  2/28   white  dog
5  2/28  orange  cat
6  3/31   black  dog
7  3/31   white  dog
8  3/31  orange  cat
04.08.2017

2

Դիտավորյալ զզվելի, բայց զարմանալիորեն արագ.

from itertools import starmap as smp, product as xp
pd.concat(
    smp(
        lambda x, i: x.iloc[i].reset_index(drop=True),
        (lambda y: zip(y, map(list, zip(*xp(*map(range, map(len, y)))))))([d1, d2])
    ), axis=1
)

   col1   color animal
0  1/31   black    dog
1  1/31   white    dog
2  1/31  orange    cat
3  2/28   black    dog
4  2/28   white    dog
5  2/28  orange    cat
6  3/31   black    dog
7  3/31   white    dog
8  3/31  orange    cat

Կարգավորում

d1 = pd.DataFrame(dict(col1=['1/31', '2/28', '3/31']))

d2 = pd.DataFrame(OrderedDict(
    color=['black', 'white', 'orange'],
    animal=['dog', 'dog', 'cat']
))
04.08.2017
Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..