我使用矢量化代码来创建pandas.Intervals列表。
示例:
a = np.array([1, 5, 10])
b = np.array([3, 8, 12])所需输出:

我尝试过的:
答:
pd.Intervals(a,b)B:
df['c'] = tuple(np.array([a, b]).T)
df['c'] = df['c'].astype(pd.Intervals)发布于 2021-10-23 09:57:08
我使用Riley参考找到了解决方案:使用pandas.arrays.IntervalArray.from_arrays
解决方案:
a = np.array([1, 5, 10])
b = np.array([3, 8, 12])
c = pd.arrays.IntervalArray.from_arrays(a, b)发布于 2021-10-23 11:56:52
您可以使用IntervalIndex而不是IntervalArray来拥有更多方法:
c = pd.IntervalIndex.from_arrays(a, b)
print(c)
# Output:
IntervalIndex([(1, 3], (5, 8], (10, 12]], dtype='interval[int64, right]')发布于 2021-10-23 10:32:32
也许这对你有用:
import pandas as pd
import numpy as np
a = np.array([1, 5, 10])
b = np.array([3, 8, 12])
df = pd.DataFrame({
'a': a,
'b': b,
'c': [pd.Interval(*boundaries) for boundaries in zip(a, b)]
})
print(df)结果:
a b c
0 1 3 (1, 3]
1 5 8 (5, 8]
2 10 12 (10, 12]https://stackoverflow.com/questions/69686917
复制相似问题