我有一个'DataFrame`‘,它偶尔会有缺失值,看起来像这样:
Monday Tuesday Wednesday
================================================
Mike 42 NaN 12
Jenna NaN NaN 15
Jon 21 4 1
我想在我的数据框中添加
假设我有以下数据框架:
import numpy as np
import pandas as pd
df = pd.DataFrame({'A' : [np.nan, 1,2],
'B' : [3, np.nan, 4],
'C': [5,6,np.nan]}).T
>>df
0 1 2
A NaN 1 2
B 3 NaN 4
C 5 6 NaN
为了将
我有一个每天的时间序列数据,有九列。每一列表示来自不同方法的度量。我只想计算每日平均只有当有两个以上的测量,否则要指定为NaN。如何处理熊猫的数据?
假设我的df看起来像:
0 1 2 3 4 5 6 7 8
2000-02-25 NaN 0.22 0.54 NaN NaN NaN NaN NaN NaN
2000-02-26 0.57 NaN 0.91 0.21 NaN 0.22 NaN 0.51 NaN
2000-02-27 0.10 0.14
我的问题是:我需要对熊猫数据仓库中的每个单元进行操作。像这样,我有一个变量中所有数据的平均值和std列:
columnWiseMeans = df.mean(axis=0)
columnWiseStd = df.std(axis=0)
然后,在每个单元格中不是0 i将它们标准化:
for i in range(df.shape[0]):
for j in range(df.shape[1]):
if df.iloc[i, j] == 0:
continue
else:
df.iloc[i, j] = (df.iloc[i, j]-column
我有一个很大的DataFrame,看起来像:
c1 c2 c3
0 NaN 1.0 NaN
1 NaN NaN NaN
2 3.0 6.0 9.0
3 NaN 7.0 10.0
...
我想:
1-删除所有"Nan“值的行。就像样本中的第二行。
2-将其他行中的所有"Nan“值替换为行的平均值。
注意:在行中,我们有不同的"Nan“值。你能帮我一下吗?谢谢。
而且,这个链接没有解决我的问题:
下面是我的DataFrame示例:
import pandas as pd
import numpy as np
df = pd
我有一个pandas数据帧,我想在数据帧的末尾添加一行以显示每列的平均值;但是,由于Col2、Col3和Col4中的平均值,NaN函数无法返回列的正确平均值。如何解决此问题? Col1 Col2 Col3 Col4
1 A 11 10 NaN
2 B 14 NaN 15
3 C 45 16 0
4 D NaN 16 NaN
5 E 12 23 5 附注:这是取平均值
我有一个基本的价值表:
import pandas as pd
import numpy as np
test = pd.read_csv('mean_test.csv')
test.replace('n/a',np.nan)
test
value1 value2 value3
1 9 5
5 NaN 4
9 55 NaN
NaN 4 9
我想计算出这三个值的平均值,忽略了NaN,所以对于第二行,它将是(5+4)/2。因此,我不能使用.replace函数代替NaN。我已经搜索了一些其他的问题,但找不到任何涉及这个问题的东西。我漏掉了
我有以下数据集 Monday Tuesday Wednesday
===================================
Mike 42 NaN 12
Jenna NaN NaN 15
Jon 21 4 1 如果所有值都存在,如何计算平均值。在上面的例子中,只有Jon应该有平均值,另外两个没有,因为它们缺少值。我尝试了不同的方法,如isnull(),notnull
我有一个稀疏的x-y对数据集,我需要平均。我想我可以用一系列的搜索索引操作来强行解决这个问题(因为x-数据在重叠时应该匹配),但是我觉得应该有一个更好的解决方案,我错过了。
我开始编写代码来生成随机数据,但在这里显示图(用日志标尺绘制以突出显示不匹配的数据长度)可能更容易。
提前谢谢。
编辑:这是随机生成数据的代码,以匹配感兴趣的数据的格式。在保持他们的x位的同时,我想要的是Y的平均值。
from random import random
# Constructing random example data
x1 = range(1,100)
x2 = range(40,150)
A B
DATE
2013-05-01 473077 71333
2013-05-02 35131 62441
2013-05-03 727 27381
2013-05-04 481 1206
2013-05-05 226 1733
2013-05-06 NaN 4064
2013-05-07 NaN 41151
2013-05-0
我想填写一个特征为null的平均值。
我试过:
# Let's impute other NAs with mean value
for f in data:
if data[f].isnull().sum() / data.shape[0] < threshold: np.isnan(data[f]) = data[f].mean()
...which引发一个错误:
SyntaxError:不能分配给函数调用
我也试过
data[f][np.isnan(data[f])] = data[f].mean()
但那甚至是更大的混乱。
我会感谢你的帮助。
我有下一个数据
A B C D E F
0 158 158 158 177 1 10
1 158 158 158 177 2 20
2 177 177 177 177 3 30
3 1 3 5 7 NaN 10
4 177 177 177 177 6 50
现在,我尝试获得一个新的数据,其中E3 = AVGAVG(E)=3,AVG(3)=5=4
A B C D E F
0 158 158 158 177 1 10
1 158
编辑:这个问题不是的克隆,因为我想用列的平均值而不是数据值的平均值替换每个列的值。
问题
我有一个熊猫数据收集(train),有100栏,我必须应用机器学习技术。
通常,我手工制作了特性工程,但在这种情况下,我有很多专栏要处理。
我想构建一个Python函数,该函数:
1)在每一列中找到NaN值(我想过df.isnull().any() )
2)对于每个NaN值,将其替换为已找到NaN值的列的平均值。
我的想法是这样的:
def replace(value):
for value in train:
if train['value'].isnull():
id gender status dept var1 var2 salary
0 P001 M FT DS 2.0 8.0 NaN
1 P002 F PT FS 3.0 NaN 54.0
2 P003 M NaN AWS 5.0 5.0 59.0
3 P004 F FT AWS NaN 8.0 120.0
4 P005 M PT DS 7.0 11.0 58.0
5 P006
我有一个dataframe,并尝试执行以下操作:
data['SD_rates']=np.array([int((data['actual value'][i]-data['means'][i])/data['std'][i]) for i in range (len(data['means']))])
它中断了以下消息:“无法将浮点数转换为int”
这是一个我理解的错误,但是用data.isnull()测试了df,没有包含NaN的列(我通过发送data.to_csv手动控制它)。
我甚至用填充it (-1,i
我有一个csv文件,我正在阅读,清理和分析熊猫。我选择相关的数据,然后为每一列创建一个方法列表(然后我将其用作新数据的新数据)。一切似乎都正常--,然而,,当我根据Excel中的平均值/平均值“手工”计算数据时,熊猫和Excel的值是不同的。
我使用的csv文件可以在这里找到:。原始文件来自;第一个链接只是清理和准备好的版本。
months = [3,4,5]
l = []
for j, station in enumerate(stations):
df = pd.read_csv('/Users/Ji/Documents/' + station + 'dat
给定样本df:
p = [[1.234,1], [2.2134,1.2365], [1.1234,2.5432]]
q = [[2,2], [0,1], [2,4]]
p[p == 22] = np.nan
通过执行以下操作,我可以从NaN值中删除p:
p = np.array([i for i in p if np.any(np.isfinite(i))], np.float64)
q = np.array(q, np.float64)
我可以为循环做任何事情来检查是否存在NaN并删除它吗?
但这是一对夫妇的。如果我有这样的数据集(真正的数据要大得多,(106,1900))怎么办?
df =