无法使用熊猫将值添加到csv中的每一列

时间:2020-05-25 16:30:04

标签: python pandas csv

我有一个csv,其中包含以下内容

AB22e,AD34f,GQ22c,BQ77b,GQ00p

此处仅包含标题。现在,我要为每列添加一个值

因此,我有一个词典,在其中维护了列名和要添加的值之间的映射。看起来像这样

col_map = {"AB22e": ["a", "v"], "AD34f": ["c", "w"], "GQ22c": ["p", "l"], "BQ77b": ["a", "d"], "GQ00p": ["oo", "c"]}

这是我向列中添加值并将其转储回csv

的方式
import pandas as pd

columns = col_map.keys()
df2 = pd.read_csv('test.csv')

for column in columns:
    df2[column] = str(col_map[column]).encode('utf-8')

df2.to_csv('test.csv', index=False)

但是没有任何内容添加到csv中。我的最终输出应该像这样

AB22e,AD34f,GQ22c,BQ77b,GQ00p
["a", "v"],["c", "w"],["p", "l"],["a", "d"],["oo", "c"]

我在做什么错了?

2 个答案:

答案 0 :(得分:3)

您可以使用:

df.append(col_map, ignore_index=True).to_csv('test.csv', index=False)

结果:

   AB22e   AD34f   GQ22c   BQ77b    GQ00p
0  [a, v]  [c, w]  [p, l]  [a, d]  [oo, c]

答案 1 :(得分:2)

您可以根据可用的字典创建数据框并重新索引

pd.DataFrame({k:[v] for k,v in col_map.items()}).reindex(df2.columns,axis=1)

    AB22e   AD34f   GQ22c   BQ77b    GQ00p
0  [a, v]  [c, w]  [p, l]  [a, d]  [oo, c]