首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python根据第一列的信息填充excel中的特定数据?

如何使用python根据第一列的信息填充excel中的特定数据?
EN

Stack Overflow用户
提问于 2022-02-24 06:01:32
回答 2查看 139关注 0票数 0

我对excel文件有问题!我想通过使用python脚本来根据第一列的信息完成一列的自动化:例如:如果数据== 'G711Alaw 64k‘或'G711Ulaw 64k’打印(‘1-Jan)直到找到它'2-Jan’,然后打印(‘2-Jan’)等等。

在实现自动化之前

我需要它在自动化后的样子:后自动化

有人能帮我解决这个问题吗?文件:excel文件

非常感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-24 06:59:12

尝试此操作,熊猫读取您的1月-1是日期时间类型,如果需要将其更改为字符串,您可以在代码中直接设置它,下面的代码将直接将读取的值分配给第二列:

代码语言:javascript
复制
import pandas as pd

df = pd.read_excel("add_date_column.xlsx", engine="openpyxl")
sig = []


def t(x):
    global sig
    if not isinstance(x.values[0], str):
        tmp_sig = x.values[0]
        if tmp_sig not in sig:
            sig = [tmp_sig]
    x.values[1] = sig[-1]
    return x


new_df = df.apply(t, axis=1)
new_df.to_excel("new.xlsx", index=False)
票数 0
EN

Stack Overflow用户

发布于 2022-02-24 07:00:52

这个概念非常简单:

  • 如果值为日期/时间,则复制到同一行,下一列。
  • 如果不是,则从上一行、下一列复制同一行。

对于此任务,您不需要具体的Python。这方面的excel公式是;

代码语言:javascript
复制
=IF(ISNUMBER(A:A),A:A,B1)

我没有检查是否是日期/时间,而是假设其余的条目都是字母数字(包括字母和数字)。此公式适用于新列。

当然,您可能已经在Python中,并且只在相同的环境中工作。下面是循环:

代码语言:javascript
复制
for i in range(len(df)):
    if type(df["Orig. Codec"][i]) is datetime:
        df["Column1"][i] = df["Orig. Codec"][i]
    else:
        df["Column1"][i] = df["Column1"][i-1]

对于相同的概念,可能有一些方法可以实现lambda函数,但我并不知道如何同时应用lambda和shift。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71247769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档