计算dataframe两个列的比值并将结果保存在另一个dataframe中的python代码
时间: 2024-05-02 13:20:12 浏览: 170
可以使用 pandas 库中的 DataFrame 进行计算,代码如下:
```python
import pandas as pd
# 创建 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 计算两个列的比值,结果保存在另一个 DataFrame 中
df_ratio = pd.DataFrame({'C': df['A'] / df['B']})
# 显示结果
print(df_ratio)
```
输出结果如下:
```
C
0 0.250000
1 0.400000
2 0.500000
```
相关问题
如何计算dataframe中两列的比值
要计算 DataFrame 中两列的比值,可以使用 Pandas 的 `div()` 函数。这个函数可以让你将 DataFrame 中的两列相除得到一个新的列。下面是一个示例代码:
``` python
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({'A': [10, 20, 30], 'B': [2, 4, 6]})
# 计算 A 列和 B 列的比值
df['C'] = df['A'].div(df['B'])
print(df)
```
运行这段代码将会输出以下结果:
```
A B C
0 10 2 5.0
1 20 4 5.0
2 30 6 5.0
```
可以看到,我们使用 `div()` 函数将 A 列和 B 列相除,并将结果保存到了一个新的列 C 中。
python在一个Dataframe中,有很多行以户号为索引的百分比值,但是索引列没有列名,我如果一行中的值全部是百分之百,则不输出,否则以Dataframe的形式输出整行
您可以使用pandas.DataFrame.iterrows()方法遍历DataFrame的每一行,然后使用pandas.DataFrame.all()方法判断每一行中的值是否全部为百分之百。如果不是,则将该行数据存入一个新的DataFrame中。以下是示例代码:
```python
import pandas as pd
# 假设原始数据存储在名为df的DataFrame中
# 创建一个空的DataFrame,用于存储符合条件的行数据
result_df = pd.DataFrame(columns=df.columns)
# 遍历每一行数据
for index, row in df.iterrows():
if not row.all() == 1.0:
# 如果该行数据不全为百分之百,则将该行数据存入result_df中
result_df = result_df.append(row)
# 输出符合条件的行数据
print(result_df)
```
注意,这里假设每一行数据都是以户号为索引的,如果不是,您需要将索引列转换为普通列。例如,可以使用pandas.DataFrame.reset_index()方法将索引列转换为普通列:
```python
df = df.reset_index()
```
阅读全文