我试图计算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'方法来做到这一点.
任何帮助表示赞赏.
我正在尝试为不同的系列创建一个具有不同颜色的图。当我尝试将图中的数据作为文本框添加时出现了问题。
我使用的代码如下:
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) 我有以下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但是索引正在阻碍而我无法找到解决方法.
任何帮助表示赞赏.谢谢.
我正在检查函数的参数是浮点数还是带有此行的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)