相关疑难解决方法(0)

在pandas中改组/置换DataFrame

在pandas中,按行或按列对数据帧进行随机播放的简单有效方法是什么?即如何编写一个函数shuffle(df, n, axis=0),它接受一个数据帧,一些shuffle n和一个轴(axis=0是行,axis=1是列),并返回已经洗牌n次数的数据帧的副本.

编辑:关键是在不破坏数据帧的行/列标签的情况下执行此操作.如果你只是洗牌df.index,那就失去了所有的信息.我希望结果df与原始相同,除了行的顺序或列的顺序不同.

编辑2:我的问题不清楚.当我说洗牌行时,我的意思是每行独立洗牌.因此,如果您有两列,a并且b我希望每行都自行进行洗牌,那么如果您只是重新排序每一行,那么您之间a和之间的关联就不b一样了.就像是:

for 1...n:
  for each col in df: shuffle column
return new_df
Run Code Online (Sandbox Code Playgroud)

但希望比天真循环更有效.这对我不起作用:

def shuffle(df, n, axis=0):
        shuffled_df = df.copy()
        for k in range(n):
            shuffled_df.apply(np.random.shuffle(shuffled_df.values),axis=axis)
        return shuffled_df

df = pandas.DataFrame({'A':range(10), 'B':range(10)})
shuffle(df, 5)
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

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

拆分大型pandas数据帧

我有一个423244行的大型数据帧.我想将其拆分为4.我尝试了下面的代码,它给出了一个错误?ValueError: array split does not result in an equal division

for item in np.split(df, 4):
    print item
Run Code Online (Sandbox Code Playgroud)

如何将此数据帧拆分为4组?

python pandas

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

如何将 Pandas DataFrame 插入 Cassandra?

我有一个如下的数据框:

df

date        time       open   high   low   last
01-01-2017  11:00:00   37      45     36    42
01-01-2017  11:23:00   36      43     33    38
01-01-2017  12:00:00   45      55     35    43

....
Run Code Online (Sandbox Code Playgroud)

我想把它写进cassandra。这是一种在python中处理数据后的批量上传。

cassandra 的架构如下:

CREATE TABLE ks.table1(date text, time text, open float, high float, low 
                       float, last float, PRIMARY KEY(date, time))
Run Code Online (Sandbox Code Playgroud)

要将单行插入到 cassandra 中,我们可以在 python 中使用 cassandra-driver 但我找不到有关上传整个数据帧的任何详细信息。

from cassandra.cluster import Cluster

session.execute(
    """
    INSERT INTO ks.table1 (date,time,open,high,low,last)
    VALUES (01-01-2017, 11:00:00, 37, 45, 36, 42)
    """)
Run Code Online (Sandbox Code Playgroud)

PS:之前已经问过类似的问题,但没有回答我的问题。

python cassandra pandas

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

标签 统计

pandas ×3

python ×3

cassandra ×1

numpy ×1