python-3.x - Python:如何从日期时间列中提取的月份列中获取模式?
问题描述
我是新来的!做我的第一个 Python 项目。:)
我的任务是:
- 将 df['Start Time'] 从字符串转换为日期时间
- 从 df['Start Time'] 创建一个月列
- 获取当月的模式。
我使用了几种不同的方法来完成所有 3 个步骤,但尝试获取模式总是返回TypeError: tuple indices must be integers or slices, not str。即使我尝试将“元组”转换为列表或 NumPy 数组,也会发生这种情况。
我尝试从开始时间提取月份的方法:
df['extracted_month'] = pd.DatetimeIndex(df['Start Time']).month
df['extracted_month'] = np.asarray(df['extracted_month'])
df['extracted_month'] = df['Start Time'].dt.month
我尝试获取模式的方法:
print(df['extracted_month'].mode())
print(df['extracted_month'].mode()[0])
print(stat.mode(df['extracted_month']))
尝试使用df.columns.get_loc("extracted_month")获取索引,然后在模式代码中替换它会给我同样的错误(TypeError: tuple indices must be integers or slices, not str)。
我想我应该将 df['extracted_month'] 转换成不同的……东西。它是什么?
注意:我的extracted_month 列是一个字符串,但您仍然应该能够从字符串变量中获取模式!我不改变它,那将是放弃。
编辑:使用以下代码仍然会导致相同的错误
extracted_month = pd.Index(df['extracted_month'])
print(extracted_month.value_counts())
解决方案
该错误可能是由您创建数据框的方式引起的。如果数据框是在另一个函数中创建的,并且该函数与数据框一起返回其他内容,但您将其分配给变量 df,则 df 将是一个包含实际数据框的元组,而不是数据框本身。
推荐阅读
- three.js - 为什么outlinePass会导致背景变暗?
- angular - 收到错误:找不到 ID 为“id”的列
- c# - C#(HTML 剃须刀显示)
- python - Python 在 init 之外定义 gui 变量
- angular - 是否可以在不必初始化所有构造函数服务的情况下对服务进行单元测试
- xamarin.ios - 使用 Appcues 脚本时,Xamarin HybridWebView 始终使用 xamarin.iOS 在浏览器中打开
- python-3.x - aws firehose lambda 函数调用给出错误的输出结构格式
- c# - 应用 Ninject 在我的 C# WPF 应用程序中使用“子视图模型”
- javascript - JSON中的所有值到JS中的字符串
- jquery - 问题对齐数据表中 DOM 上的按钮