将数据帧切片为新的数据帧

2024-09-28 21:52:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须将我的数据帧分割成新的数据帧,按目的地分组(我使用的是pandas)。你知道吗

这是我的数据帧data

Flight N .    DEP.     ARR.     Company
_________________________________________________
1             JFK      GTW      British Airways
2             JFK      LDN      British Airways
3             JFK      GNR      British Airways
4             JFK      CDG      Air France
5             JFK      DXB      Emirates
3             JFK      CDG      Lufthansa
7             JFK      DXB      Emirates
8             JFK      DXB      Emirates
9             JFK      LDN      British Airways
10            JFK      GNR      LATAM Airways

我将创建由destinion生成的新数据帧,这样:

数据帧

5             JFK      DXB      Emirates
7             JFK      DXB      Emirates
8             JFK      DXB      Emirates

数据帧

4             JFK      CDG      Air France
3             JFK      CDG      Lufthansa

以此类推。。你知道吗

问题是,我可以通过编写每个目的地来进行切片,但是我会创建一个循环来自动化这个过程。 在那之后,我就可以回忆起每一个写数据帧+目的地的数据帧


Tags: 数据pandasdataaircdg目的地francebritish
3条回答

看看熊猫群比 https://www.shanelynn.ie/summarising-aggregation-and-grouping-data-in-python-pandas/

但是,为了访问分组的数据帧,仍然需要太多的循环

关于您希望通过dataframe+目的地访问dataframe 只需将数据帧写入字典:

片段:

dic={}
grouped_df = data.groupby('ARR')

for dest,df in grouped_df:
 dic[dest] = df

你可以试着根据目的地过滤你的数据帧,它不使用groupby,但应该可以完成这项工作。你知道吗

dataframe = {} # empty dataframe dictionary
destination = [] # list of destination
for dest in destination:
    dataframe[dest] = data[data['ARR.'] == dest]

此代码将数据帧存储在dataframe字典中,并可以使用键访问它,例如:dataframe['DXB']

如果要写入文件,这将起作用:

for destination, sub_df in data.groupby('ARR')
    with open(f'dataframe_{destination}.csv') as f:
        sub_df.to_csv(f)

如果您只想将组放在单个变量中,如dict

df_by_destination = {destination: sub_df for destination, sub_df in data.groupby('ARR')}

相关问题 更多 >