pandas添加字符串给单元格时,如果将字符串追加到单元格中
时间: 2024-05-11 18:14:09 浏览: 71
,可以使用pandas的str.cat()函数。例如,假设有一个名为df的数据框,其中有一个名为column1的列,它包含了一些字符串,我们想要在其末尾添加一个新字符串"new string":
```
df['column1'] = df['column1'].str.cat('new string')
```
这将在每个单元格的末尾添加"new string"字符串。注意,如果你想在每个单元格的开头添加字符串,可以使用str.cat()的参数"join"。例如:
```
df['column1'] = df['column1'].str.cat('new string', join='left')
```
这将在每个单元格的开头添加"new string"字符串。
相关问题
import openpyxl import jionlp as jio workbook = openpyxl.load_workbook('地址.xlsx') worksheet = workbook.active address_column = 'A' output_column = 'B' # 遍历所有行并提取地址信息,然后将结果输出到新的列 for row in range(2, worksheet.max_row + 1): address = worksheet[f'{address_column}{row}'].value if address is None: # 如果单元格为空,则跳过该行 continue # 使用 JioNLP 提取地址信息 result = jio.parse_location(address) # 将结果拼接成字符串形式,方便输出到 Excel 文件中 result_str = '' for key, value in result.items(): result_str += f'{key}:{value} ' # 将结果输出到新的列 worksheet[f'{output_column}{row}'] = result_str.strip() # 保存 Excel 文件 workbook.save('output_file.xlsx')怎么将result的数据分列到新表中
如果你想将 `result` 中的数据分列到新表中,可以考虑使用 `pandas` 库来进行操作,具体步骤如下:
1. 将 `result` 转换成 `pandas` 的 `DataFrame`,其中每个字典项都是一列:
```python
import pandas as pd
result_df = pd.DataFrame(result)
```
2. 将 `result_df` 追加到原有的 Excel 文件中:
```python
with pd.ExcelWriter('output_file.xlsx', engine='openpyxl', mode='a') as writer:
result_df.to_excel(writer, index=False, sheet_name='Sheet1', startrow=1, startcol=2)
```
上述代码中,`startrow` 和 `startcol` 参数分别指定了追加数据的起始行和起始列,这里假设你想将数据追加到第一张表格的第二列。
完整代码如下:
```python
import openpyxl
import jionlp as jio
import pandas as pd
workbook = openpyxl.load_workbook('地址.xlsx')
worksheet = workbook.active
address_column = 'A'
output_column = 'B'
# 遍历所有行并提取地址信息,然后将结果输出到新的列
for row in range(2, worksheet.max_row + 1):
address = worksheet[f'{address_column}{row}'].value
if address is None: # 如果单元格为空,则跳过该行
continue
# 使用 JioNLP 提取地址信息
result = jio.parse_location(address)
# 将结果拼接成字符串形式,方便输出到 Excel 文件中
result_str = ''
for key, value in result.items():
result_str += f'{key}:{value} '
# 将结果输出到新的列
worksheet[f'{output_column}{row}'] = result_str.strip()
# 将 result 的数据分列到新表中
result_df = pd.DataFrame(result)
with pd.ExcelWriter('output_file.xlsx', engine='openpyxl', mode='a') as writer:
result_df.to_excel(writer, index=False, sheet_name='Sheet1', startrow=1, startcol=2)
# 保存 Excel 文件
workbook.save('output_file.xlsx')
```
df每个值都是字符串,给df每个值都增加换行符
如果你有一个DataFrame `df`,并且你想在每个单元格的值后面添加一个换行符(`\n`),你可以遍历DataFrame并使用`str.cat`方法或者直接使用字符串连接操作。这里是两种方法:
1. 使用`str.cat`:
```python
import pandas as pd
# 假设df是一个简单的DataFrame
df_with_newline = df.applymap(lambda x: pd.Series([x, '\n']).astype('str').cat(sep=''))
# 结果df_with_newline中的每个值都会在其后加上换行符
```
2. 直接使用字符串连接操作(假设df只有一列`column_name`):
```python
df['column_name'] = df['column_name'].astype(str) + '\n'
```
或者如果所有列都要处理:
```python
for col in df.columns:
df[col] = df[col].astype(str) + '\n'
# 这样所有列的值后面都有了换行符
```
这两个方法都将原来的值后面追加了一个换行符,注意`astype('str')`是为了确保所有数据都被转换为字符串类型以便于操作。
阅读全文