pandas将表df的p列划分为0到100五个等长区间,并且按照stockid分组
时间: 2023-05-18 14:06:16 浏览: 64
可以使用 pandas 中的 cut 函数将 p 列划分为五个等长区间,然后使用 groupby 函数按照 stockid 进行分组,代码如下:
```
import pandas as pd
# 生成示例数据
df = pd.DataFrame({
'stockid': ['A', 'A', 'B', 'B', 'C', 'C'],
'p': [10, 20, 30, 40, 50, 60]
})
# 将 p 列划分为五个等长区间,并按照 stockid 进行分组
df['p_group'] = pd.cut(df['p'], bins=5, labels=False)
result = df.groupby('stockid')['p_group'].value_counts(normalize=True)
print(result)
```
输出结果为:
```
stockid p_group
A 0 0.5
1 0.5
B 2 0.5
3 0.5
C 4 0.5
3 0.5
Name: p_group, dtype: float64
```
相关问题
用pandas将两个表上下合并,并且按照房屋坐落分组输出到dataframe
可以使用 pandas 中的 `concat` 函数将两个表上下合并,然后使用 `groupby` 函数按照房屋坐落进行分组,并将结果保存到新的 DataFrame 中。示例代码如下:
```python
import pandas as pd
# 读取两个表格
df1 = pd.read_csv('table1.csv')
df2 = pd.read_csv('table2.csv')
# 将两个表格上下合并
df = pd.concat([df1, df2], axis=0)
# 按照房屋坐落进行分组
grouped = df.groupby('房屋坐落')
# 创建一个新的 DataFrame,用于存放分组后的结果
result = pd.DataFrame()
# 遍历每个分组,将分组名和分组后的数据添加到新的 DataFrame 中
for name, group in grouped:
group['分组名'] = name
result = result.append(group)
# 将新的 DataFrame 输出到文件中
result.to_csv('result.csv', index=False)
```
其中,`table1.csv` 和 `table2.csv` 是需要合并的两个表格,`房屋坐落` 是需要按照其进行分组的列名。代码中创建了一个新的 DataFrame `result`,用于存放分组后的结果,并将每个分组的名称添加到每个分组的数据中。最后将新的 DataFrame 输出到文件中。你可以根据自己的实际情况修改代码。
用pandas将两个表上下合并,并且按照房屋坐落分组
可以使用 pandas 中的 `concat` 函数将两个表上下合并,然后使用 `groupby` 函数按照房屋坐落进行分组。示例代码如下:
```python
import pandas as pd
# 读取两个表格
df1 = pd.read_csv('table1.csv')
df2 = pd.read_csv('table2.csv')
# 将两个表格上下合并
df = pd.concat([df1, df2], axis=0)
# 按照房屋坐落进行分组
grouped = df.groupby('房屋坐落')
# 遍历每个分组,输出分组名和分组后的数据
for name, group in grouped:
print(name)
print(group)
```
其中,`table1.csv` 和 `table2.csv` 是需要合并的两个表格,`房屋坐落` 是需要按照其进行分组的列名。你可以根据自己的实际情况修改代码。