相关疑难解决方法(0)

Pandas - 在块中切割​​大型数据帧

我有一个大的数据帧(> 3MM行),我试图通过一个函数(下面的一个很大程度上简化),我不断收到一条Memory Error消息.

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

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
Run Code Online (Sandbox Code Playgroud)

我知道我的功能正常,因为它可以在较小的数据帧(例如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 …
Run Code Online (Sandbox Code Playgroud)

python slice dataframe pandas

14
推荐指数
3
解决办法
1万
查看次数

Python Pandas to_pickle无法腌制大型数据帧

我有一个带有500,000行的数据帧"DF".以下是每列的数据类型:

ID      int64
time    datetime64[ns]
data    object
Run Code Online (Sandbox Code Playgroud)

"data"列中的每个条目都是一个size = [5,500]的数组

当我尝试使用保存此数据帧时

DF.to_pickle("my_filename.pkl")
Run Code Online (Sandbox Code Playgroud)

它给我返回了以下错误:

     12     """
     13     with open(path, 'wb') as f:
---> 14         pkl.dump(obj, f, protocol=pkl.HIGHEST_PROTOCOL) 

OSError: [Errno 22] Invalid argument
Run Code Online (Sandbox Code Playgroud)

我也尝试这种方法,但我得到同样的错误:

import pickle


with open('my_filename.pkl', 'wb') as f:
    pickle.dump(DF, f)
Run Code Online (Sandbox Code Playgroud)

我尝试保存此数据帧的10行:

DF.head(10).to_pickle('test_save.pkl')
Run Code Online (Sandbox Code Playgroud)

而且我没有任何错误.因此,它可以节省小DF而不是大DF.

我在Mac上使用python 3,ipython notebook 3.

请帮我解决这个问题.我真的需要将这个DF保存到pickle文件中.我无法在互联网上找到解决方案.

python pickle pandas

11
推荐指数
2
解决办法
8644
查看次数

将Panda Dataframes写入块中的csv文件

我有一组大数据文件(1M行x 20列).但是,我只对5个左右的数据列感兴趣.

我想我可以通过仅使用感兴趣的列创建这些文件的副本来使我更容易,所以我有较小的文件可用于后期处理.

我的计划是将文件读入数据帧,然后写入csv文件.

我一直在研究将大块的数据文件读入数据帧.

但是,我还没有找到任何关于如何将数据写入块中的csv文件的内容.

这是我现在正在尝试的,但这不附加csv文件:

with open(os.path.join(folder, filename), 'r') as src:
    df = pd.read_csv(src, sep='\t',skiprows=(0,1,2),header=(0), chunksize=1000)
    for chunk in df:
        chunk.to_csv(os.path.join(folder, new_folder,
                                  "new_file_" + filename), 
                                  columns = [['TIME','STUFF']])
Run Code Online (Sandbox Code Playgroud)

python large-data dataframe export-to-csv pandas

9
推荐指数
2
解决办法
2万
查看次数

如何将一个 DataFrame 随机拆分为几个较小的 DataFrame?

我在将 DataFrame 随机分成df较小的DataFrames.

df
  movie_id  1   2   4   5   6   7   8   9   10  11  12  borda
0   1       5   4   0   4   4   0   0   0   4   0   0   21
1   2       3   0   0   3   0   0   0   0   0   0   0   6   
2   3       4   0   0   0   0   0   0   0   0   0   0   4   
3   4       3   0   0   0   0   5   0   0   4   0   5   17  
4   5       3 …
Run Code Online (Sandbox Code Playgroud)

python dataframe python-3.x pandas jupyter

9
推荐指数
1
解决办法
8946
查看次数

Pandas 数据框 to_csv - 拆分为多个输出文件

将非常大的数据帧(50GB)拆分为多个输出(水平)的最佳/最简单的方法是什么?

我想过做这样的事情:

stepsize = int(1e8)
for id, i in enumerate(range(0,df.size,stepsize)): 
    start = i 
    end = i + stepsize-1 #neglect last row ...
    df.ix[start:end].to_csv('/data/bs_'+str(id)+'.csv.out')
Run Code Online (Sandbox Code Playgroud)

但我敢打赌有更聪明的解决方案吗?

正如jakevdp所指出的,HDF5是存储大量数值数据的更好方法,但它不满足我的业务需求。

python pandas

7
推荐指数
2
解决办法
1万
查看次数

Python/Pandas - 将 Pandas DataFrame 划分为 10 个不相交、大小相同的子集

我想将 Pandas DataFrame 划分为十个不相交、大小相同、随机组成的子集。

我知道我可以使用以下方法随机采样原始 Pandas DataFrame 的十分之一:

partition_1 = pandas.DataFrame.sample(frac=(1/10))
Run Code Online (Sandbox Code Playgroud)

但是,我如何获得其他九个分区?如果我再做pandas.DataFrame.sample(frac=(1/10))一次,我的子集可能不会不相交。

谢谢您的帮助!

python partitioning dataframe python-2.7 pandas

6
推荐指数
1
解决办法
1万
查看次数

如何在列中的每个不同值上拆分 DataFrame?

下面是一个示例数据帧。

      0      1     2     3          4
0   0.0  13.00  4.50  30.0   0.0,13.0
1   0.0  13.00  4.75  30.0   0.0,13.0
2   0.0  13.00  5.00  30.0   0.0,13.0
3   0.0  13.00  5.25  30.0   0.0,13.0
4   0.0  13.00  5.50  30.0   0.0,13.0
5   0.0  13.00  5.75   0.0   0.0,13.0
6   0.0  13.00  6.00  30.0   0.0,13.0
7   1.0  13.25  0.00  30.0  0.0,13.25
8   1.0  13.25  0.25   0.0  0.0,13.25
9   1.0  13.25  0.50  30.0  0.0,13.25
10  1.0  13.25  0.75  30.0  0.0,13.25
11  2.0  13.25  1.00  30.0  0.0,13.25
12  2.0 …
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe python-3.x pandas

4
推荐指数
1
解决办法
543
查看次数

熊猫 - 拆分大型excel文件

我有一个大约500,000行的excel文件,我想将它拆分为几个excel文件,每个文件有50,000行.

我想用熊猫这样做,所以它将是最快捷,最简单的.

任何想法如何制作它?

谢谢您的帮助

python excel pandas

2
推荐指数
1
解决办法
2276
查看次数