我有一个包含4个属性的数据集:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import random
import datetime
import numpy as np
# generate some data with a datetime index
x = 400
data = pd.DataFrame([
random.random() for i in range(x)],
index=[datetime.datetime(2018, 1, 1, 0)
+ datetime.timedelta(hours=i) for i in range(x)])
# Set all data on a Saturday (5) to nan, so it doesn't show in the graph
data[data.index.weekday == 5] = np.nan
# Plot the data
fig, ax = plt.subplots(figsize=(12, 2.5))
ax.plot(data)
# Set a major tick on each weekday
days = mdates.DayLocator()
daysFmt = mdates.DateFormatter('%a')
ax.xaxis.set_major_locator(days)
ax.xaxis.set_major_formatter(daysFmt)
每个属性的数据类型如下:
taxi id date time longitude latitude
0 1 2/2/2008 15:36 116.51 39.92
1 1 2/2/2008 15:46 116.51 39.93
2 1 2/2/2008 15:56 116.51 39.91
3 1 2/2/2008 16:06 116.47 39.91
4 1 2/2/2008 16:16 116.47 39.92
我想计算每个属性的均值和标准差(std)。
我的意思是尝试过这段代码:
taxi id dtype('int64')
date time dtype('O')
longitude dtype('float64')
latitude dtype('float64')
但它给我的错误如下:
np.mean('longitude')
答案 0 :(得分:1)
您可以使用pandas
describe
df.describe()
Out[878]:
taxi id longitude latitude
count 5.000000 5.0 5.000000 5.000000
mean 2.000000 1.0 116.494000 39.918000
std 1.581139 0.0 0.021909 0.008367
min 0.000000 1.0 116.470000 39.910000
25% 1.000000 1.0 116.470000 39.910000
50% 2.000000 1.0 116.510000 39.920000
75% 3.000000 1.0 116.510000 39.920000
max 4.000000 1.0 116.510000 39.930000
答案 1 :(得分:0)
您必须指明您正在寻找数据框的平均值。事实上,当您致电numpy.mean()
时,您根本没有引用您的数据框。
如果数据框名为df
,则使用pandas.Series.mean
应该有效,如下所示:
df['longitude'].mean()
df['longitude'].std()
实际上,您在字符串上调用numpy.mean()
,这并不意味着什么。如果您真的想使用numpy.mean()
,可以使用np.mean(df['longitude'])