python - 从 Pandas 列表中获取值(value)

标签 python list pandas

我有一个 Pandas 数据框 (Python 2.11),其中一列包含时间文本(格式为 hh:mm:ss)。我只想获得小时(分钟或秒)。为此,我创建了一个列表

df.Time.str.split(":")

这样我就得到了一个列表,例如[10,23,00]。如何访问第一个(第二个或第三个)值以继续处理数据框中的每一行?

df.Time.str.split(":")[0]

返回第一行但不返回第一个元素。

最佳答案

我认为您需要参数 expand=True - 然后输出是 3 列 df:

df.Time.str.split(":", expand=True)

示例:

df = pd.DataFrame({'Time':['10:23:00', '11:23:00']})

print (df)
       Time
0  10:23:00
1  11:23:00

df[['hour','minute','seconds']] = df.Time.str.split(":", expand=True)
print (df)
       Time hour minute seconds
0  10:23:00   10     23      00
1  11:23:00   11     23      00

如果不需要所有值,可以使用 .str[] 来选择列表的值 - docs :

df['hour'] = df.Time.str.split(":").str[0]
df['minute'] = df.Time.str.split(":").str[1]
print (df)
       Time hour minute
0  10:23:00   10     23
1  11:23:00   11     23

关于python - 从 Pandas 列表中获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42625161/

相关文章:

python - 如果所有变量都在 float16 而不是 float32 中,如何运行定义 Tensorflow 图

java - Java中的LinkedList参数

python - 前 10 个字母的列表理解

python - 根据条件在数据框 pandas 中创建列

python - 使用 2 种格式的 Python 更改类型列

python - Django Haystack 反向 URL 失败

python - 没有名为 pandas 的模块

python - CSV 中的 EM Dash 导致 Pandas 出现问题

python - 如何加速 Pandas 中的最近搜索(可能通过向量化代码)

python - 文本叠加在文本框中