python - 在单列上迭代时更新 pandas DataFrame 中的所有行
问题描述
我有一个单列,约 100 行,多页 DataFrame,所有 float64。样本数据:
0
0.5
0.0.0.0
0.3.0.0
1.0.0.0
1.0.0.1
我希望将所有 float64 转换为字符串,为每一行添加一个固定的前缀字符串和后缀字符串,并将结果导出为 .csv。期望的结果:
"prefix 0 suffix"
"prefix 0.5 suffix"
"prefix 0.0.0.0 suffix"
"prefix 0.3.0.0 suffix"
"prefix 1.0.0.0 suffix"
"prefix 1.0.0.1 suffix"
第一个绊脚石是 df = df.applymap(str),当我在这个映射之后查看 df 中的对象时,我仍然看到浮动。
第二个绊脚石是在迭代中 - 我似乎无法使用字符串前缀和字符串后缀更新每个项目的值。当我查看输出文件时,我看到了原始的 df,完全没有动过,都是浮动的。
import pandas as pd
path = "magic.xlsx"
for x in range(8):
file = pd.read_excel(path, sheet_name=0, index_col=0, header=None)
df = pd.DataFrame(file)
# How should I change all items to strings?
df = df.applymap(str)
# How do I get each item to update?
for item in df.index:
if isinstance(item, str):
df.at[i,0] = "prefix" + x + "suffix"
else:
df.at[i,0] = "prefix" + x.astype(str) + "suffix"
df.to_csv('new.csv', mode='a', header=False)
我想做的很简单,但是当我查看其他示例时,我想我会因为缺少列名而被绊倒。
解决方案
推荐阅读
- amazon-web-services - 将 Lambda 与 VPC 中的资源连接起来
- xamarin - xamarin 在 webview 上形成标签(如水印)
- qt - ./app_name:无法执行二进制文件:执行格式错误
- karate - 如何验证嵌套数组元素是否使用空手道排序
- azure - 请验证 Azure 搜索服务是否已启动,重新启动 WebApp 并重试
- javascript - 为什么两个DIV不能在父DIV下拖动?
- powershell - 如何要求 PowerShell 复制标识重复并将其答案以逗号分隔?
- python-3.x - 尝试更改框架时出现 Selenium Python 异常错误
- c# - 使用 HttpClient.GetAsync 块确实注册取消令牌
- swift - 斯威夫特 macOS | 设置(切换)暗模式和亮模式