我有一個 DataFramedf需要根據特定列中的值是否ColB在給定范圍內進行拆分;
1-3、3-5、5-7 等
輸入:
Time ColA ColB ColC
1 100 1.1 500
2 105 3.2 600
3 107 7.7 550
4 106 2.4 750
5 104 5.2 950
6 103 6.9 450
期望輸出:
Time ColA ColB ColC
1 100 1.1 500
4 106 2.4 750
Time ColA ColB ColC
2 105 3.2 600
Time ColA ColB ColC
3 107 7.7 550
5 104 5.2 950
6 103 6.9 450
有沒有一種很好的方法來做到這一點而無需在 Python 中創建回圈?此外,將輸出存盤為資料幀串列或資料幀字典會更有效嗎?我問它是一個相當大的資料集。
uj5u.com熱心網友回復:
你可以試試這個:
lst = [(1,3), (3,5), (5,7)]
result = [df[df['ColB'].between(a,b)] for a,b in lst]
for i in result:
print(i, "\n")
Time ColA ColB ColC
0 1 100 1.1 500
3 4 106 2.4 750
Time ColA ColB ColC
1 2 105 3.2 600
Time ColA ColB ColC
4 5 104 5.2 950
5 6 103 6.9 450
uj5u.com熱心網友回復:
用 pandas.cut
https://pandas.pydata.org/docs/reference/api/pandas.cut.html
IE。
groups = pd.cut(df["ColB"], [1,3,5,7])
[d for _, d in df.groupby(groups)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/340524.html
下一篇:加入和分組2個資料框
