English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Exemplo de operação de conexão do Pandas
O Pandas oferece várias funcionalidades que permitem combinar facilmente Series, DataFrame e objetos Panel.
pd.concat(objs,axis=0,join='outer',join_axes=None, ignore_index=False)
objs − Esta é uma sequência de Series ou mapeamento, DataFrame ou objeto Panel. axis − {0,1,...},padrão 0. Este é o eixo a ser concatenado. join − {'inner', 'outer'}, padrão 'outer'. Como lidar com índices em outros eixos. Externo é junção, interno é interseção. ignore_index − Booleano, padrão False. Se verdadeiro, não use valores de índice no eixo de junção. O eixo resultante será marcado como 0, ... , n-1。 join_axes − Esta é uma lista de objetos de índice. Usado para outros (n-1)Índice específico do eixo, em vez de executar internamente/Lógica de configuração externa.
Esta função CONCAT realiza todas as operações de junção ao longo do eixo. Vamos criar diferentes objetos e concatená-los.
import pandas as pd one = pd.DataFrame({ 'Nome': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nome': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(pd.concat([one,two])))
Resultados da Execução:
Marks_scored Name subject_id 1 98 Alex sub1 2 90 Amy sub2 3 87 Allen4 4 69 Alice6 5 78 Ayoung5 1 89 Billy2 2 804 3 79 Bran3 4 97 Bryce6 5 88 Betty5
假设我们想将特定的键与切碎的DataFrame的每个片段相关联。我们可以通过使用keys参数来做到这一点-
import pandas as pd one = pd.DataFrame({ 'Nome': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nome': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(pd.concat([one,two],keys=['x','y']))
Resultados da Execução:
x 1 98 Alex1 2 902 3 87 Allen4 4 69 Alice6 5 78 Ayoung5 y 1 89 Billy2 2 804 3 79 Bran3 4 97 Bryce6 5 88 Betty5
结果的索引是重复的;每个索引重复。
如果结果对象必须遵循其自己的索引,则将ignore_index设置为True。
import pandas as pd one = pd.DataFrame({ 'Nome': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nome': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(pd.concat([one,two],keys=['x','y'],ignore_index=True))
Resultados da Execução:
Marks_scored 0 98 Alex sub1 1 90 Amy sub2 2 87 Allen sub4 3 69 Alice sub6 4 78 Ayoung sub5 5 89 Billy sub2 6 80 Brian sub4 7 79 Bran sub3 8 97 Bryce sub6 9 88 Betty sub5
注意,索引完全更改,并且键也被覆盖。
如果需要沿axis = 1添加两个对象,则将添加新列。
import pandas as pd one = pd.DataFrame({ 'Nome': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nome': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(pd.concat([one,two],axis=1))
Resultados da Execução:
Marks_scored 1 98 Alex1 89 Billy2 2 902 804 3 87 Allen4 79 Bran3 4 69 Alice6 97 Bryce6 5 78 Ayoung5 88 Betty5
Concat有用的快捷方式是Series和DataFrame上的append实例方法。这些方法实际上早于concat。它们沿着轴= 0连接,即索引-
import pandas as pd one = pd.DataFrame({ 'Nome': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nome': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(one.append(two))
Resultados da Execução:
Marks_scored 1 98 Alex1 2 902 3 87 Allen4 4 69 Alice6 5 78 Ayoung5 1 89 Billy2 2 80 Brian sub4 3 79 Bran sub3 4 97 Bryce sub6 5 88 Betty sub5
Esta funcionalidade pode aceitar múltiplos objetos, bem como-
import pandas as pd one = pd.DataFrame({ 'Nome': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id': ['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':['98,90,87,69,78])}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Nome': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id': ['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':['89,80,79,97,88])}, index=[1,2,3,4,5]) print(one.append([two,one,two]))
Resultados da Execução:
Marks_scored Nome subject_id 1 98 Alex sub1 2 90 Amy sub2 3 87 Allen sub4 4 69 Alice sub6 5 78 Ayoung sub5 1 89 Billy sub2 2 80 Brian sub4 3 79 Bran sub3 4 97 Bryce sub6 5 88 Betty sub5 1 98 Alex sub1 2 90 Amy sub2 3 87 Allen sub4 4 69 Alice sub6 5 78 Ayoung sub5 1 89 Billy sub2 2 80 Brian sub4 3 79 Bran sub3 4 97 Bryce sub6 5 88 Betty sub5
Pandas oferece uma ferramenta poderosa para lidar com dados de séries temporais, especialmente no campo financeiro. Ao lidar com dados de séries temporais, frequentemente nos deparamos com as seguintes situações:
Produzir uma ordem de tempo Converta séries temporais em diferentes frequências
Fornece uma série de ferramentas relativamente compactas e independentes para executar essas tarefas.
datetime.now()Fornece a data e hora atuais.
import pandas as pd print(pd.datetime.now())
Resultados da Execução:
2017-05-11 06:10:13.393147
O tipo de dados de timestamp é o tipo mais básico de série temporal que asocia valores com pontos no tempo. Para objetos Pandas, isso significa usar pontos no tempo. Vamos dar um exemplo-
import pandas as pd print(pd.Timestamp('2017-03-01))
Resultados da Execução:
2017-03-01 00:00:00
Também pode converter inteiros ou números de ponto flutuante como tempo. A unidade padrão é nanosegundo (porque é a forma como o timestamp é armazenado). No entanto, geralmente o era é armazenado em uma unidade especificada. Vamos dar um exemplo
import pandas as pd print(pd.Timestamp(1587687255,unit='s'))
Resultados da Execução:
2020-04-24 00:14:15
import pandas as pd print(pd.date_range("11:00", "13:30", freq="3).time)
Resultados da Execução:
[datetime.time(11, 0) datetime.time(11, 3) datetime.time(12, 0) datetime.time(12, 3) datetime.time(13, 0) datetime.time(13, 3, 0)
import pandas as pd print(pd.date_range("11:00", "13:30", freq="H").time)
Resultados da Execução:
[datetime.time(11, 0) datetime.time(12, 0) datetime.time(13, 0)
Para converter séries ou listas de objetos de data semelhante (por exemplo, strings, tuples ou misturas) em séries ou listas semelhantes de data, você pode usar a função to_datetime. Ao passar, retornará uma Series (com o mesmo índice) e listas semelhantes a listas serão convertidas em DatetimeIndex. Veja o exemplo a seguir-
import pandas as pd print(pd.to_datetime(pd.Series(['Jul 31, 2009','2010-01-10', None]))
Resultados da Execução:
0 2009-07-31 1 2010-01-10 2 NaT dtype: datetime64[ns]
NaT representa não é tempo (equivalente a NaN)
Vamos dar outro exemplo.
import pandas as pd print(pd.to_datetime(['2005/11/23', '2010.12.31', None]))
Resultados da Execução:
DatetimeIndex(['2005-11-23', '2010-12-31', 'NaT'], dtype='datetime64[ns]