Matlab vs. Pandas сцепленные матрицы - PullRequest
0 голосов
/ 16 октября 2018

массив панд должен располагаться поверх / ниже заданного кадра данных панд.Я использую этот код, но результат действительно удивителен!

import pandas as pd
import numpy as np
import pprint

pp = pprint.PrettyPrinter(indent=4)

df = pd.DataFrame(columns=['lib', 'qty1', 'qty2'])
for i in range(3):
    df.loc[i] = [np.random.randint(-10,10) for n in range(3)]

df2 = df.iloc[0]

pp.pprint(df)
pp.pprint(df2)

print("\nLast row")
df=pd.concat([df,df2],axis=0)
pp.pprint(df)

print("\nFirst row")
df=pd.concat([df2,df],axis=0)
pp.pprint(df)

Это так просто, как я могу заставить работать concat, как в Matlab?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Вот комплексное решение:

import pandas as pd
import numpy as np
import pprint

pp = pprint.PrettyPrinter(indent=4)

df = pd.DataFrame(columns=['lib', 'qty1', 'qty2'])
for i in range(3):
    df.loc[i] = [np.random.randint(-10,10) for n in range(3)]

df2 = df.iloc[0:1,:]

print("The two are:")
pp.pprint(df)
pp.pprint(df2)

print("\n...insert as last:")
df_erg1=pd.concat([df,df2])
pp.pprint(df_erg1)

print("\n...insert as first:")
df_erg2=pd.concat([df2,df])
pp.pprint(df_erg2)
0 голосов
/ 16 октября 2018

Когда вы делаете df2 = df.iloc[0], вы создаете Series объект, как вы увидите, если вы сделаете print(type(df2)).Чтобы заставить pd.concat работать так, как вы хотите, вам нужно объединить только DataFrame объекты.Один из способов получить фрагмент кадра, как вы собираетесь, это сделать:

df2 = df.iloc[0:1,:]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...