2024 10 07, 2156 今日內容
2024-10-07, 21:56-今日內容
我们在进行feature engineeing的时候我们汇演哦那个到kmean 聚类算法。 他算是一种务监督的学习, 也就是把数据… Pd在进行feature engineeirng 之后我们如果想要广播mean max min等等的数据, 返回df一样的row的… Pd里面检查一个column的data是不是大于0.有一个非常方便的棒方法就是.gt(). 这有一个简单的例子: feature engineeirng 我们可以吧category变成01234 这样的dummies 然后我们又可以把它和其他的… shapely的geometry数据有函数contain可以直接检测, 我们的shape是不是contain另外一个geometry… 我们对于某一个坐标想要做一个他的辐射范围, 对于gpd的geometry数据, 非常简单, 直接一句话 ,buffer 就可以调用… Epsg4326是专门为地理坐标而生的crs coordinate reference system。 专门拿来表示经纬度的, 所以… 我们如果知道了一个东西的索引, 也就是idx, 想要通过它拿到行标签也就是index的string, 那么我们可以用。index[idx… Pd想要选去某个column的min的那个row 两种方法, 最简单的就是直接iloc。但是如果非要用index,那么是这样的 : 想要拿到pd的某个column的value的最小值坐在的row。 那么我们用idxmin()先拿到他的index 然后用iloc… 比较两个gpd的gdf的位置, 我们首先必须确定用的同一个坐标系。 然后我们就可以直接调用某一个gdf的deometry的distance… Crs的测量单位: US survey foot是美国测量英尺。 ftUS 看到shp文件, 如果涉及到距离proximity, 也就是geo的坐标文件,第一个反应就是去查看他们的crs, 必须要确保他们用… Gpd如果要选定数据的点位的是否在另外一个gpd的相交的范围内,然后只选取那个范围内的数据的row, 可以用sjoin。 他就是… Gdf可以从df的x 和y 的coor来, 只要呼叫ggdp的一个方法就可: gpd.points_from_xy And 和or 的组合条件这样写起来逻辑更清晰:
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
我们在进行feature engineeing的时候我们汇演哦那个到kmean 聚类算法。 他算是一种务监督的学习, 也就是把数据… 我们在进行feature engineeing的时候我们汇演哦那个到kmean 聚类算法。 他算是一种务监督的学习, 也就是把数据分成k个cluster。 这样可以帮助我们更好的解释数据, 让模型更好的预测。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Pd在进行feature engineeirng 之后我们如果想要广播mean max min等等的数据, 返回df一样的row的… Pd在进行feature engineeirng 之后我们如果想要广播mean max min等等的数据, 返回df一样的row的条数, 那么我们就应该要用transform。 如果是想返回一个只有很少的聚合数据的df我们就用apply。两个例子:
X_5[“MedNhbdArea”] = df.groupby(“Neighborhood”)[“GrLivArea”].transform(“median”)
import pandas as pd
创建示例数据
df = pd.DataFrame({ ‘group’: [‘A’, ‘A’, ‘B’, ‘B’], ‘value’: [10, 20, 30, 40] })
使用 groupby 和 apply 计算每个组的均值,并返回一个新的 DataFrame
result = df.groupby(‘group’)[‘value’].apply(lambda x: x.mean()).reset_index()
print(result)
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Pd里面检查一个column的data是不是大于0.有一个非常方便的棒方法就是.gt(). 这有一个简单的例子: X_3 = pd.DataFrame() X_3[“PorchTypes”] = ( df[ [ “WoodDeckSF”, “OpenPorchSF”, “EnclosedPorch”, “Threeseasonporch”, “ScreenPorch”, ] ] .gt(0.0) .sum(axis=1) )
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
feature engineeirng 我们可以吧category变成01234 这样的dummies 然后我们又可以把它和其他的… feature engineeirng 我们可以吧category变成01234 这样的dummies 然后我们又可以把它和其他的feature组合到一起。 这里有一个例子:
One-hot encode Categorical feature, adding a column prefix “Cat”
X_new = pd.get_dummies(df.Categorical, prefix=”Cat”)
Multiply row-by-row
X_new = X_new.mul(df.Continuous, axis=0)
Join the new features to the feature set
X = X.join(X_new)
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
shapely的geometry数据有函数contain可以直接检测, 我们的shape是不是contain另外一个geometry… shapely的geometry数据有函数contain可以直接检测, 我们的shape是不是contain另外一个geometry的数据。或者我们可以把很多的shape 集合union到一个总的shape, 这样方便我们contain来比较和检验proximity。   Proximity Analysis
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
我们对于某一个坐标想要做一个他的辐射范围, 对于gpd的geometry数据, 非常简单, 直接一句话 ,buffer 就可以调用… 我们对于某一个坐标想要做一个他的辐射范围, 对于gpd的geometry数据, 非常简单, 直接一句话 ,buffer 就可以调用让这个geometry 往外延伸一个buffer的圆圈。 例子: two_mile_buffer = stations.geometry.buffer(2*5280)

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Epsg4326是专门为地理坐标而生的crs coordinate reference system。 专门拿来表示经纬度的, 所以… Epsg4326是专门为地理坐标而生的crs coordinate reference system。 专门拿来表示经纬度的, 所以我们只要是想要展示经纬度的数据 就需要把crs转换成epsg4326
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
我们如果知道了一个东西的索引, 也就是idx, 想要通过它拿到行标签也就是index的string, 那么我们可以用。index[idx… 我们如果知道了一个东西的索引, 也就是idx, 想要通过它拿到行标签也就是index的string, 那么我们可以用。index[idx]
stations.index[distance.idxmin()]
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Pd想要选去某个column的min的那个row 两种方法, 最简单的就是直接iloc。但是如果非要用index,那么是这样的 : stations.loc[stations.index[distance.idxmin()]][ [‘ADDRESS’, ‘LATITUDE’, ‘LONGITUDE’] ]
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
想要拿到pd的某个column的value的最小值坐在的row。 那么我们用idxmin()先拿到他的index 然后用iloc… 想要拿到pd的某个column的value的最小值坐在的row。 那么我们用idxmin()先拿到他的index 然后用iloc 调用这个idx。 然后就可以了 最后还可以筛选他的column。这里有个例子: 
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
比较两个gpd的gdf的位置, 我们首先必须确定用的同一个坐标系。 然后我们就可以直接调用某一个gdf的deometry的distance… 比较两个gpd的gdf的位置, 我们首先必须确定用的同一个坐标系。 然后我们就可以直接调用某一个gdf的deometry的distance。 他是一个函数, 他接受另一个df的某一条数据的数据的位置数据也就是他的geometry。 这个会返回给我们一个distance的距离, 也就是第一个df距离第二个df的距离了: 
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Crs的测量单位: US survey foot是美国测量英尺。 ftUS
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
看到shp文件, 如果涉及到距离proximity, 也就是geo的坐标文件,第一个反应就是去查看他们的crs, 必须要确保他们用… 看到shp文件, 如果涉及到距离proximity, 也就是geo的坐标文件,第一个反应就是去查看他们的crs, 必须要确保他们用的是同一个crs, 我们就直接呼叫这个gdf的crs就可以看了。 一个例子: 你可以看到2272 就是他的crs。只有crs一致才能进行研究。 
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Gpd如果要选定数据的点位的是否在另外一个gpd的相交的范围内,然后只选取那个范围内的数据的row, 可以用sjoin。 他就是… Gpd如果要选定数据的点位的是否在另外一个gpd的相交的范围内,然后只选取那个范围内的数据的row, 可以用sjoin。 他就是sjoin
locations_of_interest = gpd.sjoin(starbucks_gdf, sel_counties) num_stores = len(locations_of_interest)
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Gdf可以从df的x 和y 的coor来, 只要呼叫ggdp的一个方法就可: gpd.points_from_xy 具体有一个例子: starbucks_gdf = gpd.GeoDataFrame(starbucks, geometry=gpd.points_from_xy(starbucks.Longitude, starbucks.Latitude)) starbucks_gdf.crs = {‘init’: ‘epsg:4326’}
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
And 和or 的组合条件这样写起来逻辑更清晰: primary_condition = ( (CA_stats[‘high_earners’] > 0.1e5) & (CA_stats[‘median_age’] < 35) & (CA_stats[‘density’] > 1000) )
secondary_condition = ( (CA_stats[‘high_earners’] > 0.1e5) | (CA_stats[‘median_age’] < 35) | (CA_stats[‘density’] > 1000) )
CA_stats[primary_condition & secondary_condition]
让我们详细解释一下代码中条件的链接方式。
条件解释
主要条件(Primary Condition)
主要条件要求所有以下条件都满足:
- 至少有 100,000 个家庭每年收入 150,000 美元 (
CA_stats['households_150k'] >= 100000)。 - 中位年龄小于 38.5 岁 (
CA_stats['median_age'] < 38.5)。 - 居民密度至少为 285 人每平方公里 (
CA_stats['density'] >= 285)。
次要条件(Secondary Condition)
次要条件要求至少满足以下条件之一:
- 至少有 500,000 个家庭每年收入 150,000 美元 (
CA_stats['households_150k'] >= 500000)。 - 中位年龄小于 35.5 岁 (
CA_stats['median_age'] < 35.5)。 - 居民密度至少为 1400 人每平方公里 (
CA_stats['density'] >= 1400)。
条件组合
最终选择的县必须满足主要条件和次要条件的组合。具体实现代码如下:
primary_condition = (
(CA_stats['households_150k'] >= 100000) &
(CA_stats['median_age'] < 38.5) &
(CA_stats['density'] >= 285)
)
secondary_condition = (
(CA_stats['households_150k'] >= 500000) |
(CA_stats['median_age'] < 35.5) |
(CA_stats['density'] >= 1400)
)
sel_counties = CA_stats[primary_condition & secondary_condition]
逻辑解释
primary_condition使用&连接符表示“与”(AND)逻辑,表示必须同时满足所有条件。secondary_condition使用|连接符表示“或”(OR)逻辑,表示只需要满足其中一个条件即可。
最终的 sel_counties 是通过同时满足 primary_condition 和 secondary_condition 的县所组成的。
#匯總今日內容