Python 如何从熊猫核心系列中获取价值?
我有一个数据帧Python 如何从熊猫核心系列中获取价值?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧df,其中是特定ip号码的时区: ip1 ip2 timezone 0 16777215 0 16777216 16777471 +10:00 16777472 16778239 +08:00 16778240 16779263 +11:00 16779264 16781311 +08:00 16781312 16785407
df
,其中是特定ip号码的时区:
ip1 ip2 timezone
0 16777215 0
16777216 16777471 +10:00
16777472 16778239 +08:00
16778240 16779263 +11:00
16779264 16781311 +08:00
16781312 16785407 +09:00
...
第一行适用于从0到16777215的ip号码,第二行适用于从16777216到16777471的ip号码,依此类推。
现在,我浏览了一个文件夹,想知道每个文件的时区(在我计算了文件的ip\u编号之后)。
我使用:
但这是熊猫核心系列,我只想要“+5:30”。
我怎么会变成这样?或者是否有其他方法代替df.loc[…]
直接成为df
中时区列的值?要从大小为1的系列中提取唯一值,请使用:
屈服
ip timezone
0 16777471 +10:00
1 16777473 +08:00
2 16778238 +08:00
3 16785406 +09:00
理想情况下,下一步是应用更多NumPy/Pandas矢量化函数
一次处理整个数据帧。但如果必须,可以迭代
通过结果
数据帧逐行显示。不过,您的代码看起来会更干净一些
因为您可以轻松读取ip和相应的偏移量(并且无需调用.item()
)
要从大小为1的系列中提取唯一值,请使用:
屈服
ip timezone
0 16777471 +10:00
1 16777473 +08:00
2 16778238 +08:00
3 16785406 +09:00
理想情况下,下一步是应用更多NumPy/Pandas矢量化函数
一次处理整个数据帧。但如果必须,可以迭代
通过结果
数据帧逐行显示。不过,您的代码看起来会更干净一些
因为您可以轻松读取ip和相应的偏移量(并且无需调用.item()
)
把它列出来
list(time)
如果仅排除一个值
list(time)[0]
或者您可以提前:
#for numpy array
time=df.loc[(df['ip1'] <= ip_number) & (ip_number <= df['ip2']), 'timezone'].values
#for list
time=list(df.loc[(df['ip1'] <= ip_number) & (ip_number <= df['ip2']), 'timezone'].values)
用于numpy阵列的#
time=df.loc[(df['ip1']只需列出它即可
list(time)
如果仅排除一个值
list(time)[0]
或者您可以提前:
#for numpy array
time=df.loc[(df['ip1'] <= ip_number) & (ip_number <= df['ip2']), 'timezone'].values
#for list
time=list(df.loc[(df['ip1'] <= ip_number) & (ip_number <= df['ip2']), 'timezone'].values)
用于numpy阵列的#
time=df.loc[(df['ip1']我对另一个问题的回答不起作用吗?我真的不明白。这个方法对我来说容易得多,但我需要最后一步的帮助。这只适用于一个ip_编号。如果你想要这些值,请执行time.values[0]
。我对另一个问题的回答不起作用吗?我真的不明白。这个方法对我来说简单得多,但我需要最后一步的帮助。这只适用于一个ip\U号码。如果您需要这些值,请执行time.values[0]
。
#for numpy array
time=df.loc[(df['ip1'] <= ip_number) & (ip_number <= df['ip2']), 'timezone'].values
#for list
time=list(df.loc[(df['ip1'] <= ip_number) & (ip_number <= df['ip2']), 'timezone'].values)