相关疑难解决方法(0)

在python pandas中构造共生矩阵

我知道如何在R中这样做.但是,pandas中是否有任何函数将数据帧转换为包含两个方面共同计数的nxn共生矩阵.

例如矩阵df:

import pandas as pd

df = pd.DataFrame({'TFD' : ['AA', 'SL', 'BB', 'D0', 'Dk', 'FF'],
                    'Snack' : ['1', '0', '1', '1', '0', '0'],
                    'Trans' : ['1', '1', '1', '0', '0', '1'],
                    'Dop' : ['1', '0', '1', '0', '1', '1']}).set_index('TFD')

print df

>>> 
    Dop Snack Trans
TFD                
AA    1     1     1
SL    0     0     1
BB    1     1     1
D0    0     1     0
Dk    1     0     0
FF    1     0     1

[6 rows x 3 columns]
Run Code Online (Sandbox Code Playgroud)

会屈服:

    Dop …
Run Code Online (Sandbox Code Playgroud)

python statistics pandas

38
推荐指数
4
解决办法
3万
查看次数

DataFrame.values中的更改是否总是会修改数据框中的值?

它说,在文档上

NDFrame的Numpy表示 - 来源

"NDFrame的Numpy表示"是什么意思?修改这个numpy表示会影响我的原始数据帧吗?换句话说,.values返回副本还是视图

StackOverflow中有问题的答案隐含地建议(依赖)返回视图.例如,在pandas.DataFrame的对角线上的Set值的接受答案中,np.fill_diagonal(df.values, 0)用于将对角线部分的所有值设置df为0.这是在这种情况下返回的视图.但是,如@coldspeed的回答所示,有时会返回副本.

这感觉非常基本.这对我来说有点奇怪,因为我没有更详细的资料来源.values.


另一个实验除了@ coldspeed的回答中的当前实验之外还返回一个视图:

df = pd.DataFrame([["A", "B"],["C", "D"]])

df.values[0][0] = 0
Run Code Online (Sandbox Code Playgroud)

我们得到了

df
    0   1
0   0   B
1   C   D
Run Code Online (Sandbox Code Playgroud)

即使它现在是混合型,我们仍然可以df通过设置修改原件df.values

df.values[0][1] = 5
df
    0   1
0   0   5
1   C   D
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe pandas

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

标签 统计

pandas ×2

python ×2

dataframe ×1

numpy ×1

statistics ×1