- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个包含混合类型值(timedeltas 和 int)的 MultiIndex 系列:
char
7 a 103 minutes
s 63
9 a 129 minutes
s 211
10 a 106 minutes
s 63
Name: timestamp, dtype: object
索引:
MultiIndex(levels=[[7, 9, 10], ['a', 's']],
labels=[[0, 0, 1, 1, 2, 2], [0, 1, 0, 1, 0, 1]],
names=['char', None])
当我尝试使用pandas.Series.unstack()
对其进行取消堆叠时,它将所有值转换为时间增量(具有不同的精度):
a s
char
7 01:43:00 00:00:00.000000
9 02:09:00 00:00:00.000000
10 01:46:00 00:00:00.000000
谁知道这是从哪里来的?
编辑
这里有更多信息。原始数据样本:
timestamp char
0 2008-01-15 23:56:52 7
1 2008-01-16 00:07:28 7
2 2008-01-01 16:12:32 9
3 2008-01-03 01:52:08 9
4 2008-07-06 17:23:25 10
5 2008-07-06 17:33:47 10
我提取了一些特征:
def get_session(ts):
ts = ts.sort_index()
dt = (ts - ts.shift()).fillna(0)
first_logs = dt > '30m'
sessions = first_logs.cumsum() + 1
duration = sessions.value_counts().mean() * np.timedelta64(10, 'm')
return pd.Series({'s': max(sessions), 'a': duration})
timetable = data.groupby('char')[' timestamp'].apply(get_session)
这给了我:
char
7 a 20 minutes
s 1
9 a 10 minutes
s 2
10 a 20 minutes
s 1
Name: timestamp, dtype: object
拆开后的样子:
timetable.unstack()
a s
char
7 00:20:00 00:00:00.000000
9 00:10:00 00:00:00.000000
10 00:20:00 00:00:00.000000
最佳答案
看起来像错误。
我认为你可以从函数 DataFrame
返回,然后 unstack
就没有必要了:
def get_session(ts):
ts = ts.sort_index()
dt = (ts - ts.shift()).fillna(0)
first_logs = dt > '30m'
sessions = first_logs.cumsum() + 1
duration = sessions.value_counts().mean() * np.timedelta64(10, 'm')
return pd.DataFrame({'s': max(sessions), 'a': duration}, index=[0])
timetable = data.groupby('char')['timestamp'].apply(get_session)
print (timetable)
a s
char
7 0 00:20:00 1
9 0 00:10:00 2
10 0 00:20:00 1
但是索引有问题(二级都是0
),所以可以从s
列创建索引,然后设置索引name
通过rename_axis
(pandas
0.18.0
中的新功能):
def get_session(ts):
ts = ts.sort_index()
dt = (ts - ts.shift()).fillna(0)
first_logs = dt > '30m'
sessions = first_logs.cumsum() + 1
duration = sessions.value_counts().mean() * np.timedelta64(10, 'm')
return pd.DataFrame({'a': duration}, index=[max(sessions)]).rename_axis('s')
timetable = data.groupby('char')['timestamp'].apply(get_session)
print (timetable)
a
char s
7 1 00:20:00
9 2 00:10:00
10 1 00:20:00
关于python - Pandas.Series.unstack() 会影响数据类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38140025/
有时,我倾向于(重复)执行next next a 来获取特定元素。当您需要 2 次或更少的遍历时,这很有效。然而,它很快就会变得很麻烦。对于这个简单的情况,循环的开销太大。 幸运的是,如果您知道位置,
我在使用值为 numpy 数组的 pandas.Series 时遇到了以下奇怪的行为。 % s = pd.Series([5,2], index=[6,7]) %s.loc[6] 5 <-- ret
我有一个看起来像这样的数据框(小版本): A B C 0 125 ADB [AF:12] 1 189 ACB [AF:78, AF:85, AF:98] 2 148 ADB
我在 Pandas (s1) 中创建了一个系列,用于根据原始 DataFrame 中的列 ('d1') 计算这些固定数字 (1-14) 的实例数。我想要的显示在这里(时报); s1 Last
pandas series 有两个密切相关的属性:Series.index 和 Series.index.values。 这两个中的第一个返回某些 pandas 索引类型的当前索引。它是可变的,可用于
我正在尝试使用 KNNClassifier 训练模型。我将数据拆分如下: X_train, X_test, y_train, y_test = train_test_split(X_bow, y, t
我只是尝试对我的数据框进行排序并使用了以下函数: df[df.count >= df.count.quantile(.95)] 返回错误: AttributeError: 'function' obj
我试过了 print(type(numbers[2])) numbers[2].tolist() print(type(numbers[2])) 那是行不通的。我得到了 Numbers 是一个矩阵
我想从时间戳中减去日期。settings.dataset_end_date 是一个 pandas._libs.tslibs.timestamps.Timestamp引用['date_of_patent
我有一个带有数据的 pandas.core.series.Series 0 [00115840, 00110005, 001000033, 00116000... 1 [00267285,
s = pd.Series( nr.randint( 0, 10, 5 ), index=nr.randint(0, 10, 5 ) ) s 输出 1 3 7 6 2 0 9
pandas.DataFrame.query() 方法非常适合在加载或绘图时(预/后)过滤数据。它对于方法链特别方便。 我发现自己经常想将相同的逻辑应用于 pandas.Series,例如在完成诸如返
这个问题在这里已经有了答案: Difference between map, applymap and apply methods in Pandas (11 个回答) 去年关闭。 Series.ma
我正在总结一系列中的值,但根据我如何做,我会得到不同的结果。我试过的两种方法是: sum(df['series']) df['series'].sum() 为什么它们会返回不同的值? 示例代码。 s
我有一个字符串说 type(abc) >>str 我想把它转换成 pandas.core.series.Series。 我在 pandas 文档中看到有一段代码 pd.to_string() 将 pa
我有一个字符串说 type(abc) >>str 我想把它转换成 pandas.core.series.Series。 我在 pandas 文档中看到有一段代码 pd.to_string() 将 pa
这个问题在这里已经有了答案: Pandas: select DF rows based on another DF (5 个答案) 关闭 5 年前。 如果我有一个包含开始时间和结束时间的 DataF
我尝试了 Series.index 和 Series.keys() 并且输出是相似的。我找不到它们之间的显着差异。它们是否适用于某些特殊条件? 我在 Anaconda 上的 Jupyter Noteb
我有一个(非常大的)系列,其中包含关键字(例如,每行包含多个由“-”分隔的关键字 In[5]: word_series Out[5]: 0 the-cat-is-pink 1
我需要使用 pandas.read_excel 通过 Python 获取 Excel 电子表格最后一个单元格的值。该单元格包含一个日期,我需要将其分配给 Python 脚本中的变量。格式为2018-1
我是一名优秀的程序员,十分优秀!