繁体   English   中英

PANDAS 如何根据第一列的值拆分数据框?

[英]PANDAS How to split a dataframe according to value from first column?

如果可能的话,我想根据第一列中的值将一个大数据帧拆分为几个较小的数据帧,我没有在网上找到它。 例如,我有这个:

DF
Column1 Column2 Column3 Column4 
  A       1       2       1
  A       1       1       2
  A       3       2       2
  B       2       1       2
  B       3       1       1

split this into :
DF1
Column1 Column2 Column3 Column4 
  A       1       2       1
  A       1       1       2
  A       3       2       2

DF2
Column1 Column2 Column3 Column4 
  B       2       1       2
  B       3       1       1

简单如:

df1 = df[df['A'] == 'A']
df2 = df[df['B'] == 'B']

如果您有该列的唯一值,您可以创建一个数据框列表:

df_lst = list()
unique_elements = df['column1'].unique()

for elm in unique_elements:
     df_lst.append(df[df['column1'] == elm])

您可以通过熊猫解决这个问题并使用函数 groupby()

import pandas as pd
#load your file 
df =pd.read_csv('sample.csv')
grouped = df.groupby(df.column1)
A = grouped.get_group("A")
B = grouped.get_group("B")
print(A)
print(B)

您可以将 groupby 用作:

df=[['A',1 ,1,2],['A',10,1,2],['B',10,1,2],['B',30,1,2]]
df = pd.DataFrame(df,columns=['a','b','c','d'])

d1,d2 = df.groupby('a')
print(d1[1])
print()
print(d2[1])

   a   b  c  d
0  A   1  1  2
1  A  10  1  2

   a   b  c  d
2  B  10  1  2
3  B  30  1  2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM