将值附加到 Pandas 系列

Append values into Pandas series

我想从文件中提取特定的一行。 文件很多,导致很多lines/values。 我想将所有值放入 Pandas DataFrame。

为此,目标是将名为“11”的行放入一列“11”(系列),将名为“22”的行放入下一 column/Series“22”,将行“ 33" 到最后 column/Series.

目标:

         11     22     33
file1   0.4     4.1    6.2
file2   0.5     4.3    6.1
file3   0.6     4.6    6.1
file4   0.8     4.1    6.7
...     ...     ...    ...

现在,我只有:

import os
cwd=os.getcwd()
import pandas as pd
columns=["11","22","33"]
df=pd.DataFrame(columns=columns)
filenames=[]
for files in os.listdir(cwd):
    if files.startswith("file"):
        os.chdir(files)
        cwd2=os.getcwd()
        filenames.append(files)     
        for files2 in os.listdir(cwd2):
            if files2.startswith("Ausgab"):
                os.chdir(files2)
                o=open("yoyo.txt","r")
                i=0
                for line in o:
                    i=i+1
                    if i==1:
                        df["11"].append(line[15:40])
                    if i==2:
                        df["22"].append(line[15:40])
                    if i==3:
                        df["33"].append(line[15:40])

        os.chdir(cwd1)
df=pd.DataFrame(columns=columns,index=filenames)
df.to_csv("ttttest.csv")

文件列表有效,所以列“11”、“22”、“33”。 但是带有 df["11"].append 的部分不起作用。 如何从循环中向 Pandas 系列添加值?

我有一个可行的方法。我现在找不到关于做类似事情的另一个讨论,这是更好的答案之一。

您可以制作一个列表字典,而不是首先制作数据框 - 在您的情况下类似于

d = {"11": [],"22": [],"33":[]}

当您要附加数据时,您会执行以下操作:

d["11"].append(line[15:40])

或者也许

d["11"] += line[15:40]

(我不清楚你的数据是什么 - 如果它是一个字符串,我会认为你想拆分它然后添加整个列表?)

最后你可以制作你的数据框,假设你所有的列表都是相同的长度,通过调用 df = pd.DataFrame(d)