csv 在Python中添加不重复的行

x0fgdtte  于 11个月前  发布在  Python
关注(0)|答案(2)|浏览(112)

我想在原始csv文件中添加新项目。每次添加项目时,原始文件的ID都会增加1,如下所示。
| ID|名称|
| --|--|
| 0 |阿尔法|
| 1 |Beta|
| 2 |伽马|
| 3 |三角洲|
我想添加以下数组
items = ["Epsilon", "Beta", "Zeta"]
到原始的csv文件,并消除重复,最终看起来像这样:
| ID|名称|
| --|--|
| 0 |阿尔法|
| 1 |Beta|
| 2 |伽马|
| 3 |三角洲|
| 4 |Epsilon|
| 5 |Zeta|
我试过用pandas,但是id列由于某种原因变成了“nan”。

import pandas as pd
items = ["Epsilon", "Beta", "Zeta"]
df = pd.read_csv('original.csv', index_col='Id')
for i in range(len(items)):
    df=df.append({'Id': len(df), 'Name': items[i]}, ignore_index=True)
df = df.drop_duplicates(['Name'], ignore_index=True)
df

字符串
如果你能帮我解决这个问题,我将不胜感激。

xcitsw88

xcitsw881#

尝试:

items = ["Epsilon", "Beta", "Zeta"]

df = pd.concat([df, pd.DataFrame({"Name": items})]).drop_duplicates(subset="Name")
df["Id"] = range(len(df))

print(df)
# df.to_csv('out.csv')

字符串
打印:

Id     Name
0   0    Alpha
1   1     Beta
2   2    Gamma
3   3    Delta
0   4  Epsilon
2   5     Zeta

kmynzznz

kmynzznz2#

尝试:

import pandas as pd

data = {'Id': [0, 1, 2, 3], 'Name': ['Alpha', 'Beta', 'Gamma', 'Delta']}
df = pd.DataFrame(data)

items = ["Epsilon", "Beta", "Zeta"]

for i in range(len(items)):
    if items[i] not in df['Name'].values:
        df = df.append({'Id': df.index[-1] + 1, 'Name': items[i]}, ignore_index=True)

print(df)

字符串
结果如下:

Id  Name
0   0    Alpha
1   1     Beta
2   2    Gamma
3   3    Delta
4   4  Epsilon
5   5     Zeta


请注意,我们使用df.index[-1] + 1为每个项目生成新的Id值。这确保了Id值对于每个添加到框架中的新项目递增1。

相关问题