gpt4 book ai didi

python - 从 Pandas 数据框中的一列获取两个值

转载 作者:行者123 更新时间:2023-12-05 09:26:40 25 4
gpt4 key购买 nike

我有以下 csv 文件,我正在使用 pandas dataframe 读取它:

Timestamp, UTC, id, loc, spd
001, 12z, q20, "52, 13", 320
002, 13z, a32, "53, 12", 321
003, 14z, q32, "54, 11", 321
004, 15`, a43, "55, 10", 330

我提取的数据如下:

import pandas as pd
import matplotlib.pyplot as plt

fname = "data.csv"
data = pd.read_csv(fname,sep=",", header=None, skiprows=1)
data.columns = ["Timestamp", "UTC", "Callsign", "Position", "Speed", "Direction"]

t = data["Timestamp"]
utc = data["UTC"]
acid = data["Callsign"]
pos = data["Position"]
spd = ["Speed"]

但是,对于位置列,这会导致该列中每行有 2 个值。我希望位置的第一个值位于单独的列表中,第二个值位于单独的列表中,如下所示:

latitude = [52,53,54,55]
longitude = [13,12,11,10]

如何使用 pandas 数据框选择它?

最佳答案

使用Series.str.stripSeries.str.split如果需要 2 个新列,则转换为 float :

data[['lat','lon']] = (data["Position"].str.strip('"')
.str.split(',\s+', expand=True)
.astype(float))
print (data)
Timestamp UTC Callsign Position Speed lat lon
0 1 12z q20 "52, 13" 320 52.0 13.0
1 2 13z a32 "53, 12" 321 53.0 12.0
2 3 14z q32 "54, 11" 321 54.0 11.0
3 4 15` a43 "55, 10" 330 55.0 10.0

如果需要 2 个列表:

lat, lon = (data["Position"].str.strip('"')
.str.split(',\s+', expand=True)
.astype(float)
.to_numpy()
.T.tolist())
print (lat, lon)
[52.0, 53.0, 54.0, 55.0] [13.0, 12.0, 11.0, 10.0]

关于python - 从 Pandas 数据框中的一列获取两个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73644094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com