在python中追加行时,在pandas.csv文件中增加列的值



我有这样的代码,它从csv文件中选择一列,并将其作为行附加到另一个csv文件:

def append_pandas(s,d):
import pandas as pd
df = pd.read_csv(s, sep=';', header=None)
df_t = df.T
df_t.iloc[0:1, 0:1] = 'Time Point'
df_t.columns = df_t.iloc[0]
df_new = df_t.drop(0)
pdb = pd.read_csv(d, sep=';')
newpd = pdb.append(df_new)
from pandas import DataFrame
newpd.to_csv(d, sep=';')

正如您所看到的,有一个"时间点"列,每次附加该行时,我都希望该列中的值递增1。例如,当第一行被附加时,它是0,第二行将有1,第三行将有3等。

你能帮忙吗?

生成的文件如下所示:

Time Point     A   B   C ...
1    23  65  98  
2    10  24  85
3     1  54  72
4    33  77   0 
5     7  73  81
6   122  43   5 # <- row added with new Time Point

p.S.正在附加的行没有时间点值,看起来像这样:

Well ID   Cell Count
A          100
B          200 
C           54
D           77
E           73
F           49

生成的文件也不应该添加第一个文件的头("单元格ID"、"单元格计数"(;所以只计算"单元格计数"列的值。

请帮忙:(

尝试以下代码并检查输出CSV文件:

import io
import pandas as pd
# Load an empty CSV file and read it as dataframe
empty_csv = 'Time Point;A;B;C;D;E;F'
df = pd.read_csv(io.StringIO(empty_csv), sep=';')
# Load a CSV file which will be added to `df` defined above
add_csv = 'Well ID;Cell CountnA;100nB;200nC;54nD;77nE;73nF;49n'
df_add = pd.read_csv(io.StringIO(add_csv), sep=';')
def append_a_row(df, df_add):
df_add = df_add.set_index('Well ID').T
df_add.insert(0, 'Time Point', len(df)+1)
return df.append(df_add)
df_new = append_a_row(df, df_add)
# Save as csv
d = 'path_to_the_output.csv'
df_new.to_csv(d, sep=';', index=False)

最新更新