在Pandas中,DataFrame是一个非常重要的数据结构,在对DataFrame进行遍历的同时修改其单元格内容是常见的需求。本文介绍几种在Pandas中遍历DataFrame并修改单元格的方法。
.loc按标签选择
可以使用`.loc`按行标签和列标签选择单元格,然后赋值:
for row in df.index:
for col in df.columns:
df.loc[row, col] = new_value
.iloc按位置选择
使用`.iloc`按整数位置选择单元格,然后赋值:
for row in range(df.shape[0]):
for col in range(df.shape[1]):
df.iloc[row, col] = new_value
.itertuples()遍历行
通过`.itertuples()`遍历行,然后修改指定列:
for row in df.itertuples():
df.at[row.Index, 'col1'] = new_value
.apply()批量修改
通过`.apply()`在轴上应用函数进行批量修改:
df[['col1','col2'
pandas
修改
单元格
的值
dfc = pd.
DataFrame
({'a':[1,2,3,4,5,6],'b':[2,3,4,5,6,7]})
dfc.loc[3, 'b'] = 'english' #
修改
第3行b列的值
dfc.loc[4, 'b'] = 'english' #
修改
第4行b列的值
# 条件
修改
# 将'b'列行值为 'english' 的替换为'English'
dfc.loc[dfc['b']=='english', 'b'] = 'English'
修改
无效
nodes = pd.read_csv("pre_only_num.csv",header =None)
for index,row in nodes.iterrows():
#print(row[0])
row[0] = -1
直接在原处
修改
无效
for index,row in nodes.iterrows():
oid = int(row[0])
nodes.iat[index,0]
那么可以用
python
的
pandas
库来实现。
pandas
的
dataframe
有一个很好用的函数applymap,它可以把某个函数应用到
dataframe
的每一个元素上,而且比常规的for循环去
遍历
每个元素要快很多。如下是相关代码:
import
pandas
as pd
data = [[...
当你使用
pandas
读取WPS Excel文件并遇到"_x0000_"字符错误时,可以按照以下步骤
修改
单元格
内容
:
1. 首先,确保你已经导入了
pandas
库[^1]:
```
python
import
pandas
as pd
2. 使用`pd.read_excel()`读取Excel文件,但可能出现错误,这时可以尝试加载到
DataFrame
,忽略错误:
```
python
excel_data = pd.read_excel("your_file.xlsx", engine='openpyxl', errors='ignore')
except Exception as e:
print(f"Error reading Excel file: {e}")
3. 创建一个辅助函数来替换有问题的字符,如 "_x0000_":
```
python
def change_excel_char(value):
if isinstance(value, str):
return value.replace("_x0000_", '')
else:
return value
4. 应用这个函数到
DataFrame
的每个元素(即每个
单元格
)上:
```
python
excel_data = excel_data.applymap(change_excel_char)
这会
遍历
DataFrame
中的
每个
单元格
,如果发现是字符串,就替换掉"_x0000_"。注意,如果你的文件
中的
错误不是这种特定格式,可能还需要进一步分析具体错误。