【问题标题】:Writing data to specific column in python using pandas使用熊猫将数据写入python中的特定列
【发布时间】:2018-03-27 04:49:26
【问题描述】:

我有一个Excel Sheet ,其中某些列uniqueidentifier 设置为“是”,其余为空白。

使用Pandas library,我使用以下命令获取uniqueidentifier 中没有值的数据:

df=pandas.read_excel("sample.xlsx")
df=df[df.uniqueidentifier != "yes"]

然后我想在每次循环遍历 excel 文件中的索引时将“是”写入 uniqueidenfier 列。

list=[]
for i in df.index
  list.append(df['Subject'][i])
  # do some function here
  var="some value"

每次我在listvar 中获得相应索引的正确值时。我希望我的函数为循环中的 i 值写入 uniqueidentifier 列(例如,如果在第 4 行中,则当未设置 uniqueidentifier 时,列表应该从主题中获取值,并且在uniqueidentifier 列追加并写入“是”)

除了上述之外,我想将var的值写入到excel文件的相邻列中。

由于我是 python 新手并被困在这里,有人可以帮助我吗?

【问题讨论】:

  • 请参考这里的答案,stackoverflow.com/questions/13842088/…
  • @neo 抱歉,我对原始问题进行了一些修改。我正在从 excel 中读取数据,然后消除具有 uniqueidentifier=yes 的值。 df.set_value(i,"uniqueidentifier","yes") 是否仍然适用于 Excel 工作表?
  • 您要将编辑内容保存到 Excel 工作表还是仅保存到数据框?
  • @neo 到 Excel 工作表。所以下次我打开它时不会采用具有 uniqueidentifier=yes 的值,而只会采用新值

标签: python excel pandas uniqueidentifier


【解决方案1】:

要将唯一标识符设置为是,您可以在循环中添加以下行:

if [#some conditions are met]:    
    df.loc[i,'uniqueidentifier']='YES'
    df.iloc[i].new_column=var
    #new_column is the name of the column where you write your var value. you can name it however you want.

然后您需要将其导出回 excel。你可以使用:

writer = pd.ExcelWriter('file.xlsx')
df.to_excel(writer,'Sheet1')
writer.save()

但请记住,这会覆盖您的旧 excel

【讨论】:

  • 有没有办法不覆盖整个 excel 文件,因为整个文件都被覆盖了,这导致我的功能出现问题。像任何其他库一样,我可以执行与 pandas 相同的功能但它不会覆盖数据?
  • 您可以将特定行附加到文件中,它会将其添加到您的 Excel 末尾。使用:f=open("filename","a+"),然后是 f.write(data),最后是 f.close()。都在你的循环中。我很确定您也可以告诉您的脚本替换 excel 中的特定行,但不知道该怎么做,因为我以前从未尝试过
  • 这里的 f 是什么?它还会在文件末尾附加数据吗?如果我有 10 行,那么这些值将从第 11 行出现。例如,在我上面的示例中,我的 excel 文件有一列 UNiqueIdentifier,其中有 3 行是,其余为空白。那么这会从第 4 行追加数据还是从数据结束的最后一行追加数据?
  • f 只是一个名称,可让您使用 open 命令访问文件。您可以使用您喜欢的任何其他名称。关于你的第二个问题追加找到文件的最后一行并添加一个。
猜你喜欢
  • 2022-11-01
  • 1970-01-01
  • 2014-03-28
  • 2021-12-12
  • 2018-11-11
  • 2019-04-20
  • 1970-01-01
  • 2017-02-09
  • 2021-08-30
相关资源
最近更新 更多