pandas 有一列的列名为:Num,数据类型为数字。如何选择出内容包含[1,2,,5,7,8]的行。
时间: 2024-09-13 22:17:55 浏览: 72
在Pandas中,你可以使用`isin()`函数来选择一列中值包含特定列表的行。假设你的DataFrame名为df,Num列存储了数字:
```python
import pandas as pd
# 假设df是一个DataFrame,其中的Num列是你想要检查的
target_values = [1, 2, '', 5, 7, 8]
selected_rows = df[df['Num'].isin(target_values)]
# 现在selected_rows就是包含Num列为1、2、5、7、8的数据行
```
注意,这里空字符串''被视作一个有效元素,如果你想要排除空字符串,可以在`isin()`之前先过滤掉它:
```python
non_empty_target_values = [1, 2, 5, 7, 8]
selected_rows = df[df['Num'].isin(non_empty_target_values) & (df['Num'] != '')]
# 上述代码会同时满足Num列的值在non_empty_target_values列表内且不为空字符串
```
相关问题
import pandas as pd # 使用 pandas 读取 CSV 文件并转换数据类型 data = pd.read_csv('boston_housing_data.csv') # 统计每一列低于平均值的数目 num_below_avg = [0] * len(data[0]) #num_below_avg = [0 for _ in range(len(data[0]))] for row in data: for i, value in enumerate(row): if float(value) < sum(map(float, row))/len(row): num_below_avg[i] += 1 # 打印每一列低于平均值的数目 for i, num in enumerate(num_below_avg): print(f"Column {i}: {num} values below average")
这段代码的作用是读取一个CSV文件(`boston_housing_data.csv`),然后统计该文件中每一列低于平均值的数目,并输出结果。具体来说,该代码使用 `pandas` 库读取CSV文件,然后使用循环遍历每一行数据,对于每一行数据,使用 `enumerate` 函数获取每一个元素的下标和值,然后通过 `map` 函数将每一行的数据转换为浮点数,计算该行数据的平均值,如果某个元素小于该行数据的平均值,则将该元素所在列的计数器加一。最后,代码使用循环遍历每一列计数器的值,并输出结果。
需要注意的是,该代码中使用的 `data[0]` 是错误的,应该使用 `data.columns` 来获取数据集的列名。
python pandas 如何把一列字符串替换为数字
可以使用 pandas 的 `replace` 方法将字符串列替换为数字。假设数据框为 `df`,需要替换的列名为 `col_name`,需要替换的字符串为 `old_str`,替换为的数字为 `new_num`,可以使用以下代码:
```
df[col_name] = df[col_name].replace(old_str, new_num).astype(int)
```
其中 `astype(int)` 表示将替换后的结果转换为整数类型。如果需要替换多个字符串,可以使用字典来指定替换规则,例如:
```
replace_dict = {'old_str1': new_num1, 'old_str2': new_num2, ...}
df[col_name] = df[col_name].replace(replace_dict).astype(int)
```
这样就可以将多个字符串替换为对应的数字。
阅读全文
相关推荐
















