将值附加到Pandas系列中

时间:2017-03-24 15:23:34

标签: pandas add series

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

为此,我们的目标是将#34; 11"分成一列" 11" (系列),名为" 22"进入下一栏/系列" 22"以及" 33"进入最后一栏/系列。

目的:

         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"]附加的部分不起作用。 如何从循环中向Pandas系列添加值?

1 个答案:

答案 0 :(得分:1)

我有办法。还有另一个讨论,我现在无法找到类似的东西,这是一个更好的答案。

而不是创建一个数据框,你可以创建一个列表字典 - 在你的情况下像

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

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

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

或者

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

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

最后,您可以制作数据框,假设您的所有列表都是相同的长度,只需拨打df = pd.DataFrame(d)