我试图找到整个数据框的中位数流量。首先要做的是仅选择数据框中的某些项目。
这有两个问题,它包括不在“states”中的数据框部分。此外,中位数不是单个值,而是基于行的。如何获得数据框中所有数据的总体中位数?
我试图找到整个数据框的中位数流量。首先要做的是仅选择数据框中的某些项目。
这有两个问题,它包括不在“states”中的数据框部分。此外,中位数不是单个值,而是基于行的。如何获得数据框中所有数据的总体中位数?
两个选项:
1)一个Pandas选项:
df.stack().median()
2) 一个NumPy选项:
np.median(df.values)
您贴上的DataFrame由于一些空格而有些混乱。但您需要将DataFrame melt
,然后在新的melted DataFrame上使用median()
:
df2 = pd.melt(df, id_vars =['U.S.'])
print(df2['value'].median())
pd.melt()
的注释,特别是value_vars
和id_vars
参数。# reading in on clipboard
df = pd.read_clipboard()
# printing it out to see and also the column names
print(df)
print(df.columns)
# melting the DF and then printing the result
df2 = pd.melt(df, id_vars =['U.S.'])
print(df2)
# Creating a new DF so that no nulls are in there for ease of code readability
# using .copy() to avoid the Pandas warning about working on top of a copy
df3 = df2.dropna().copy()
# there were some funky values in the 'value' column. Just getting rid of those
df3.loc[df3.value.isin(['Columbia', 'of']), 'value'] = 99
# printing out the cleaned version and getting the median
print(df3)
print(df3['value'].median())