Skip to main content
 首页 » 编程设计

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

2025年05月04日26lyhabc

我有一个 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