python切割时间数据_python – Pandas – 在块中切割​​大型数据帧

本文探讨了在处理大型数据帧时遇到的内存问题。作者尝试通过将数据帧切分成小块,然后逐个应用函数来解决这个问题。函数`trans_times_2`用于将交易金额加倍,但在整个数据帧上运行时导致内存错误。提出的解决方案包括使用`pd.concat`重新组合处理后的数据块,但目前的实现未能成功。作者寻求改进的分割和重新连接策略以有效处理大型数据集。
摘要由CSDN通过智能技术生成

我有一个大型数据帧(> 3MM行),我正试图通过一个函数(下面的一个很大程度上简化了),并且我不断收到内存错误消息.

我想我将太大的数据帧传递给函数,所以我试图:

1)将数据帧切成较小的块(最好用AcctName切片)

2)将数据帧传递给函数

3)将数据帧连接回一个大型数据帧

def trans_times_2(df):

df['Double_Transaction'] = df['Transaction'] * 2

large_df

AcctName Timestamp Transaction

ABC 12/1 12.12

ABC 12/2 20.89

ABC 12/3 51.93

DEF 12/2 13.12

DEF 12/8 9.93

DEF 12/9 92.09

GHI 12/1 14.33

GHI 12/6 21.99

GHI 12/12 98.81

我知道我的功能正常工作,因为它可以在较小的数据帧(例如40,000行)上工作.我尝试了以下方法,但是我将小数据帧连接回一个大型数据帧是不成功的.

def split_df(df):

new_df = []

AcctNames = df.AcctName.unique()

DataFrameDict = {elem: pd.DataFrame for elem in AcctNames}

key_list = [k for k in DataFrameDict.keys()]

new_df = []

for key in DataFrameDict.keys():

DataFrameDict[key] = df[:][df.AcctNames == key]

trans_times_2(DataFrameDict[key])

rejoined_df = pd.concat(new_df)

我如何设想分割数据帧:

df1

AcctName Timestamp Transaction Double_Transaction

ABC 12/1 12.12 24.24

ABC 12/2 20.89 41.78

ABC 12/3 51.93 103.86

df2

AcctName Timestamp Transaction Double_Transaction

DEF 12/2 13.12 26.24

DEF 12/8 9.93 19.86

DEF 12/9 92.09 184.18

df3

AcctName Timestamp Transaction Double_Transaction

GHI 12/1 14.33 28.66

GHI 12/6 21.99 43.98

GHI 12/12 98.81 197.62

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值