将值附加到 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)
我想从文件中提取特定的一行。 文件很多,导致很多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)