小编Xia*_* Lu的帖子

在列表的pandas列中获取元素频率的有效方法

我试图计算pandas DataFrame列中元素的频率.

一些玩具数据:

d = pd.DataFrame({'letters':[['a', 'b', 'c'], np.nan, ['a', 'e', 'd', 'c'], ['a', 'e', 'c']]})
Run Code Online (Sandbox Code Playgroud)

我能想到的是遍历行并向字典添加值:

letter_count = {}
for i in range(len(d)):
    if d.iloc[i, ]['letters'] is np.nan:
        continue
    else:
        for letter in d.iloc[i, ]['letters']:
            letter_count[letter] = letter_count.get(letter, 0) + 1
Run Code Online (Sandbox Code Playgroud)

这对我有用,除非它的数据集很大,因此速度不是很快.我假设通过避免明确的for循环可能有所帮助,但我无法想出更多'pandasian'方法来做到这一点.

任何帮助表示赞赏.

python pandas

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

Matplotlib 创建具有与系列相对应的颜色的文本

我正在尝试为不同的系列创建一个具有不同颜色的图。当我尝试将图中的数据作为文本框添加时出现了问题。

我使用的代码如下:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import scipy.stats as stats

df = pd.DataFrame({'x': [21000, 16900, 18200, 32000, 35000, 7500], 'y':[3000, 2100, 1500, 3000, 2500, 2000], 'z':['a', 'b', 'c', 'd', 'e', 'f']})

fig, ax = plt.subplots(figsize=(8,6))

text_list = []
color_list = []

for i, row in df.iterrows():
    mu, sigma, group = row['x'], row['y'], row['z']       
    x = np.linspace(mu - 4*sigma, mu + 4*sigma, 100)

    sns.lineplot(x, stats.norm.pdf(x, mu, sigma), ax=ax)
    color …
Run Code Online (Sandbox Code Playgroud)

python visualization matplotlib seaborn

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

将pandas数据帧转换为结构化数组

我有以下pandas数据帧

import pandas as pd
a = [2.5,3.3]
b = [3.6,3.9]
D = {'A': a, 'B': b}
Run Code Online (Sandbox Code Playgroud)

这给了我类似的东西

+---+-----+-----+
|   |  A  |  B  |
+---+-----+-----+
| 0 | 2.5 | 3.3 |
| 1 | 3.6 | 3.9 |
+---+-----+-----+ 
Run Code Online (Sandbox Code Playgroud)

我想将此数据帧转换为结构化数组

data = np.rec.array([
('A', 2.5),
('A', 3.6),
('B', 3.3),
('B', 3.9),
], dtype = [('Type','|U5'),('Value', '<i8')])
Run Code Online (Sandbox Code Playgroud)

因为我刚开始做大熊猫,所以我没有找到办法实现这一目标.我试过pd.to_records但是索引正在阻碍而我无法找到解决方法.

任何帮助表示赞赏.谢谢.

python pandas

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

type(number)==(float或int)返回false python

我正在检查函数的参数是浮点数还是带有此行的int并且它保持返回false,有人可以解释为什么会发生这种情况吗?

def distance_from_zero(number):
    if type(number) == (int or float):
        return abs(number)
    else:
        return "Nope"
Run Code Online (Sandbox Code Playgroud)

python

-3
推荐指数
1
解决办法
241
查看次数

标签 统计

python ×4

pandas ×2

matplotlib ×1

seaborn ×1

visualization ×1