我的代码应该返回大约65列数据的统计分析(来自调查的问题)。下面给出了示例数据以及当前代码。当前,输出仅显示不包含字符串的列(对于其他列,它们以NaN形式返回,甚至不会显示在Excel中)。
我认为该问题是由于某些数据点标记为“无数据”而另一些数据标记为“异常值”
我想学习一种忽略异常值/无数据点并显示统计数据(例如其余数据的均值或中值)的方法。我也很想学习如何结合条件函数来显示诸如“响应数> 4.25”之类的结果,以便我可以进行分析扩展。
Q1 Q2 Q3 Q4 Q5 Q6
4.758064516 4.709677419 4.629032258 Outlier 4.708994709 4.209677419
4.613821138 No Data 4.259259259 4.585774059 4.255927476 Outlier
4.136170213 4.309322034 4.272727273 4.297169811 No Data 4.29468599
4.481558803 4.581476323 4.359495445 4.558252427 4.767926491 3.829030007
4.468085106 4.446808511 4.425531915 4.446808511 4.423404255 4.14893617
代码:
import pandas as pd
from pandas import ExcelWriter
# Pull in Data
path = r"C:\Users\xx.xx\desktop\Python\PyTest\Pyxx.xlsx"
sheet = 'Adjusted Data'
data = pd.read_excel(path,sheet_name=sheet)
#Data Analysis
analysis = pd.DataFrame(data.agg(['count','min','mean', 'median', 'std']), columns=data.columns).transpose()
print(analysis)
g1 = data.groupby('INDUSTRY').median()
print(g1)
g2 = data.groupby('New Zone').median()
print(g2)
#Excel
path2 = r"C:\Users\xx.xx\desktop\Python\PyTest\Pyxx2.xlsx"
writer = ExcelWriter(path2)
g1.to_excel(writer,'x')
g2.to_excel(writer,'y')
analysis.to_excel(writer,'a')
data.to_excel(writer,'Adjusted Data')
writer.save()
编辑 计算对Q1的响应中有多少> X(在这种情况下,K1 = COUNTIF(K1:K999,TRUE))
答案 0 :(得分:3)
发生这种情况完全是由于字符串。 Thay不能用双数求和。这是一个未定义的操作,因此是Nan。
尝试并清除数据。
选项是:
无论如何,我都会尝试从数据中删除字符串。
如果您不能执行此操作,则可能意味着此数据与其他数据不属于同一数据,因为它来自不同的分发。