Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用DataFrame编辑Excel文件并将其保存回Excel文件?_Python_Excel_Pandas_Dataframe - Fatal编程技术网

Python 如何使用DataFrame编辑Excel文件并将其保存回Excel文件?

Python 如何使用DataFrame编辑Excel文件并将其保存回Excel文件?,python,excel,pandas,dataframe,Python,Excel,Pandas,Dataframe,我有Excel文件。我也把我的截图放在下面的文件里。 我想用以下两个条件编辑音高等级列上的数据: 删除文本之间的''标记 正在删除0值 正在删除[]标记 例如,从本文中: ['0', 'E3', 'F3', 'F#3 / Gb3', 'G3', 'G#3 / Ab3', 'A3', 'A#3 / Bb3', 'B3', 'C4', 'C#4 / Db4', 'D4'] 我想让它看起来像这样: [E3, F3, F#3 / Gb3, G3, G#3 / Ab3, A3, A#3 / Bb3,

我有Excel文件。我也把我的截图放在下面的文件里。

我想用以下两个条件编辑
音高等级
列上的数据:

  • 删除文本之间的
    ''
    标记
  • 正在删除
    0
  • 正在删除
    []
    标记
  • 例如,从本文中:

    ['0', 'E3', 'F3', 'F#3 / Gb3', 'G3', 'G#3 / Ab3', 'A3', 'A#3 / Bb3', 'B3', 'C4', 'C#4 / Db4', 'D4']
    
    我想让它看起来像这样:

    [E3, F3, F#3 / Gb3, G3, G#3 / Ab3, A3, A#3 / Bb3, B3, C4, C#4 / Db4, D4]
    
    当然,我可以一个接一个地手动完成,但不幸的是,因为我有大约20个类似的文件需要编辑,所以我不能手动完成,所以我想我可能需要Python的帮助

    我在Python上这样做的想法是将Excel文件加载到一个数据框中,逐行编辑数据(可能使用
    .remove()
    .join()
    方法),然后将编辑结果放回原始Excel文件,或者可能生成一个新的Excel文件,其中包含一个已编辑的
    基音类
    数据列

    但是,我有点不知道如何编写代码。到目前为止,我试图做的是:

  • 将Excel文件读入Python
  • 读取该Excel文件中的
    pitch class
  • 将其加载到数据帧。 下面是我当前的代码

  • 我的问题是如何编辑每行的
    音高类
    数据,并将编辑结果重新放回原始或新的Excel文件?我很难访问
    df['pitch-class']
    数据,因为我无法获取字符串值。Python中有什么方法可以实现它吗?

    一般来说,您不想迭代数据帧中的每一行,它非常慢。在pandas中,有很多方法(您可以通过长期实践来学习)可以在列/行/整个数据帧上应用函数。在本例中:

    将列转换为字符串类型,并用空格替换“字符”

    df = pd.read_excel("014_twinkle_twinkle 300 0.0001 dataframe.xlsx")
    df["pitch-class"] = df["pitch-class"].astype(str).str.replace("'0', ", "")
    df["pitch-class"] = df["pitch-class"].astype(str).str.replace("'", "")
    df.to_excel("results.xlsx")
    

    这起作用了。非常感谢。但是,
    0
    仍保留在数据中。我能做[code>df['pitch-class']吗?删除(0)忽略它吗?@Dionisius Pratama我编辑了我的答案,删除了数据开头的0。如果这回答了您的问题,请记住按“已回答”勾选:)
    df = pd.read_excel("014_twinkle_twinkle 300 0.0001 dataframe.xlsx")
    df["pitch-class"] = df["pitch-class"].astype(str).str.replace("'0', ", "")
    df["pitch-class"] = df["pitch-class"].astype(str).str.replace("'", "")
    df.to_excel("results.xlsx")