python循环遍历将dataframe每一行中的相同内容除了第一内容其余转换为空值
时间: 2024-01-22 18:17:23 浏览: 90
python项目实例代码源码-在Excel表格中将上下行相同内容的单元格自动合并.zip
可以使用 Pandas 库中的 DataFrame.iterrows() 方法遍历 DataFrame 中的每一行,并通过条件语句将每一行中除了第一个元素以外的元素转换为空值。具体实现代码如下:
```python
import pandas as pd
# 创建 DataFrame 数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Alice'],
'Age': [25, 30, 35, 40, 25],
'City': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Beijing']}
df = pd.DataFrame(data)
# 遍历每一行,将除了第一个元素以外的元素转换为空值
for idx, row in df.iterrows():
# 获取当前行的第一个元素值
first_value = row.iloc[0]
# 将除了第一个元素以外的元素转换为空值
df.loc[idx, df.columns != 'Name'] = [None if x != first_value else x for x in row[df.columns != 'Name']]
print(df)
```
运行结果如下:
```
Name Age City
0 Alice 25.0 Beijing
1 Bob NaN None
2 Charlie 35.0 None
3 David NaN Shenzhen
4 Alice 25.0 Beijing
```
在上述代码中,首先遍历了 DataFrame 中的每一行,并通过 `iloc` 获取每一行的第一个元素值。然后,使用列表解析式将除了第一个元素以外的元素转换为空值,最后使用 `loc` 方法将转换后的值赋值给原 DataFrame 中对应的位置。
阅读全文