python - 如何将 Excel 公式应用于整个列中的值?
问题描述
我正在尝试解析文件夹中的文件名并弄清楚如何将它们加载到 csv 文件中,但我需要将公式应用于列以获得最终结果。代码和数据以及我计划使用的 Excel 公式如下。
这段代码从文件夹“testfolder”中获取文件名,并将它们转储到 csv 文件中。
代码:
import os, csv
f = open("/home/niteninja/Documents/sampledata.csv", 'r+')
w=csv.writer(f)
for path, dirs, files in os.walk("/home/niteninja/testfolder"):
for filename in files:
w.writerow([filename])
f.truncate()
这是运行上述代码后 csv 文件中的数据的示例。
样本数据.csv:
A B
ndjsmdhfr_145874
jdmsjfht_273647
hfgryuyw_756475
jgmfhdhr_736453
jdmsdhfyt_548745
我想要做的是实现这个公式:"LEFT(A1,FIND("_",A1) - 1)"
在 B 列中。
这样做的目的是消除下划线和后面的任何字符。我希望能够将此公式应用于 A 列中的单元格并将新值输出到 B 列。我无法找出解决此问题的正确语法。
解决方案
首先为单个字符串定义一个函数:
def splitter(x):
return x.split('_')[0]
print(splitter('ndjsmdhfr_145874'))
# ndjsmdhfr
然后写入您的 CSV 文件。请记住newline=''
用作open
. 此外,建议您使用该with open(...)
结构来读取/写入文件。这是一些伪代码:
with open('out_file.csv', 'w', newline='') as fout:
w = csv.writer(fout)
for path, dirs, files in os.walk("/home/niteninja/testfolder"):
for filename in files:
w.writerow([filename, splitter(filename)])
推荐阅读
- wpf - 将图像控件绑定到数据网格数据上下文(视图模型)
- php - 谁能帮我在 Yii2 框架中将多个数组保存到数据库中?
- r - 在 Cox 回归中获得零 P 值:R
- python - 在python中解析列表的子列表
- c++ - cmake 错误 [SDK/Util/CMakeLists.txt:132 (add_library) 处的 CMake 错误]
- apache-kafka - Spring Cloud Stream Binding Consumer 属性不起作用
- sql - SparkSQL - 两个时间戳之间的差异(以分钟为单位)
- android - Discord OAuth2登录失败通过Android Webview
- javascript - 使用 Sequelize 在 GraphQL 查询中将日期时间字段作为字符串输出
- javascript - 如何将 JSON 转换为 Javascript 数组?