- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我将从这篇文章中讨论我的需求......现在我需要从另一个 excel csv
文件更新现有的 excel xlsm
文件,因为这个 csv
文件是一个导出的 csv
> 来自 outlook 邮件收件箱,这是我的 outlook 邮件 csv
|---------------------|------------------|------------------|------------|
| Subject | Body | From: (Name) | To: (Name) |
|---------------------|------------------|------------------|------------|
|blabla LCAIN5678 bla |bla bla bla bla |bla bla bla bla |bla bla bla |
|---------------------|------------------|------------------|------------|
当我在使用 pandas 阅读后使用 str.extract
处理和分析此 csv
文件时,这是我从中提取特定数据的提取代码csv
文件,至于像这样提取特定字符串 LCAIN5678
包含五个字符和五个数字,然后使用 dropna()
with,
这段代码
# this object extract 5 chars and 5 numbers from specific column in csv
replaced_sbj_value = myOutlook_inBox['Subject']
.str.extract(pat='(L(?:DEL|CAI|SIN).\d{5})').dropna()
这是我的xlsm
文件,由pandas读取
gov_tracker_sheet = pd.read_excel(r'' + mydi
sheet_name
header=1)
这是我的 csv
文件,由 pandas 读取
myOutlook_inBox = pd.read_csv(r'' + mydir + 'test.CSV
encoding='latin-1')
然后我这样初始化它
myOutlook_inBox["Subject"] = replaced_sbj_value
print (replaced_sbj_value)
变成这样
|-----------------|
| Subject |
|-----------------|
| LCAIN5678 |
|-----------------|
然后我使用一些函数创建条件,例如 loc
str.contains
喜欢这个条件因为这个条件是过滤csv
# Condition 1: any mail from mowafy to te
frm_mwfy_to_te = myOutlook_inBox.loc[myOutlook_inBox['From:
(Name)'].str.contains("mowafy", na=False) \
& myOutlook_inBox['To:
(Name)'].str.contains("te", na=False)] \
.drop_duplicates(keep=False)
然后我通过使用 join
方法创建一个变量来 join
变量 frm_mwfy_to_te
到 excel xlsm
文件我想更新
filtered_data_cond1 = gov_tracker_sheet.loc[
gov_tracker_sheet['SiteCode']
.str.contains('|'.join(frm_mwfy_to_te.Subject))]
print(filtered_data_cond1)
因为这只是让我从 xlsm
excel 文件中获取我想要更新的行
所以最后在这里创建一个元组值以使用此变量更新 Dataframe
这是我的 tuple
变量
values = tuple(filtered_data_cond1['Pending '].values.tolist())
因为这是我的元组
值的输出
(u'TE', u'PP', u'TE', u'TE', u'TE', u'TE', u'TE', u'TE', u'TE')
所以从这里开始,我通过使用 replace
方法开始使用 Regex
。
这是我创建的替换变量
updated_gov_tracker = gov_tracker_sheet.replace(to_replace=values,
value='xxxxxxxxxxxx',
regex=False)
此代码有效,但它只是替换了包含 TE
的 xlsm
文件中的所有行,我只需要更新所需的行
我用了另一种方式,有些人是这样想的,但效果不佳
updated_gov_tracker=re.sub(values,"xxxxxxxxx",gov_tracker_sheet)
我需要的第二件事我想用旧的 xlsm
表格替换我的新 Dataframe
而不会在 excel 中丢失我的 macros
csv
Outlook 收件箱 excel 看起来像这样xlwings
也可以帮助我,通过选择行的范围并写入新的 updatedvalue
,所以我现在需要采取tuple
变量,因为此变量包含名为站点代码的列的 strings
,最后我现在需要根据此元组中的值行更新 excel xlsm 第一张表我有一个像这样的元组值 LCAIN12345 LCAIN54632 LCAIN78965 啦啦啦啦
现在这个值已经存在于名为 Gov_Tracker
的工作表中名为 SiteCode
的 xlsm
工作表中 我想根据 更新一些列>rows
这个值,就像我想在名为 Pending
、Pending Status
和 blablabla
现在我想修改此列的行值,例如将 Pending
、Pending Status
、blablabla equals
中的旧值更改为新值TE
,等待 TE 接受`blablabla
我希望这个信息足够清楚
最佳答案
使用 XlsxWriter 创建 xlsm 的最简单解决方案是手动更改文件结尾,然后在额外的步骤中包含宏(参见 here ):
import pandas as pd
df = pd.DataFrame({'First' : [5, 2, 0, 10, 4],
'Second' : [9, 8, 21, 3, 8]})
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
workbook = writer.book
workbook.filename = 'test.xlsm'
workbook.add_vba_project('./vbaProject.bin')
writer.save()
查看此 answer .您可以使用 XslxWriter 包附带的 vba_extract.py 实用程序提取宏 (vbaProject.bin)。
$ vba_extract.py macro_file.xlsm
Extracted: vbaProject.bin
关于python - 如何在不丢失宏的情况下使用 pandas、openpyxl、xlwings 使用宏更新现有的 xlsm 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56931921/
pandas.crosstab 和 Pandas 数据透视表似乎都提供了完全相同的功能。有什么不同吗? 最佳答案 pivot_table没有 normalize争论,不幸的是。 在 crosstab
我能找到的最接近的答案似乎太复杂:How I can create an interval column in pandas? 如果我有一个如下所示的 pandas 数据框: +-------+ |
这是我用来将某一行的一列值移动到同一行的另一列的当前代码: #Move 2014/15 column ValB to column ValA df.loc[(df.Survey_year == 201
我有一个以下格式的 Pandas 数据框: df = pd.DataFrame({'a' : [0,1,2,3,4,5,6], 'b' : [-0.5, 0.0, 1.0, 1.2, 1.4,
所以我有这两个数据框,我想得到一个新的数据框,它由两个数据框的行的克罗内克积组成。正确的做法是什么? 举个例子:数据框1 c1 c2 0 10 100 1 11 110 2 12
TL;DR:在 pandas 中,如何绘制条形图以使其 x 轴刻度标签看起来像折线图? 我制作了一个间隔均匀的时间序列(每天一个项目),并且可以像这样很好地绘制它: intensity[350:450
我有以下两个时间列,“Time1”和“Time2”。我必须计算 Pandas 中的“差异”列,即 (Time2-Time1): Time1 Time2
从这个 df 去的正确方法是什么: >>> df=pd.DataFrame({'a':['jeff','bob','jill'], 'b':['bob','jeff','mike']}) >>> df
我想按周从 Pandas 框架中的列中累积计算唯一值。例如,假设我有这样的数据: df = pd.DataFrame({'user_id':[1,1,1,2,2,2],'week':[1,1,2,1,
数据透视表的表示形式看起来不像我在寻找的东西,更具体地说,结果行的顺序。 我不知道如何以正确的方式进行更改。 df示例: test_df = pd.DataFrame({'name':['name_1
我有一个数据框,如下所示。 Category Actual Predicted 1 1 1 1 0
我有一个 df,如下所示。 df: ID open_date limit 1 2020-06-03 100 1 2020-06-23 500
我有一个 df ,其中包含与唯一值关联的各种字符串。对于这些唯一值,我想删除不等于单独列表的行,最后一行除外。 下面使用 Label 中的各种字符串值与 Item 相关联.所以对于每个唯一的 Item
考虑以下具有相同名称的列的数据框(显然,这确实发生了,目前我有一个像这样的数据集!:() >>> df = pd.DataFrame({"a":range(10,15),"b":range(5,10)
我在 Pandas 中有一个 DF,它看起来像: Letters Numbers A 1 A 3 A 2 A 1 B 1 B 2
如何减去两列之间的时间并将其转换为分钟 Date Time Ordered Time Delivered 0 1/11/19 9:25:00 am 10:58:00 am
我试图理解 pandas 中的下/上百分位数计算,但有点困惑。这是它的示例代码和输出。 test = pd.Series([7, 15, 36, 39, 40, 41]) test.describe(
我有一个多索引数据框,如下所示: TQ bought HT Detailed Instru
我需要从包含值“低”,“中”或“高”的数据框列创建直方图。当我尝试执行通常的df.column.hist()时,出现以下错误。 ex3.Severity.value_counts() Out[85]:
我试图根据另一列的长度对一列进行子串,但结果集是 NaN .我究竟做错了什么? import pandas as pd df = pd.DataFrame([['abcdefghi','xyz'],
我是一名优秀的程序员,十分优秀!