【发布时间】:2021-06-08 15:34:36
【问题描述】:
由于我对熊猫完全陌生,所以我想问一下。
我有两个 CSV 文件。
其中之一在一列中包含不同语言的所有颜色:
我这里有三排蓝色:azul, bleu 在不同语言中都是蓝色的意思,所以它们应该在同一个组 1. rouge 和 rojo 是红色的意思,所以它们也在同一个组,所以它们应该有 2 个。
这是我的第一个表格颜色:
| name | group |
|---|---|
| blue | 1 |
| azul | 1 |
| bleu | 1 |
| rouge | |
| red | |
| rojo | |
| verde | |
| vert | |
| green |
以此类推,在我的 csv 中,此列组为空,我必须填写它
我还有第二个 CSV 文件,看起来像这样
表格颜色_语言:
| english | french | spanish | group |
|---|---|---|---|
| green | vert | verde | 3 |
| red | rouge | rojo | 2 |
| blue | bleu | azul | 1 |
我想通过将第一个 CSV 文件与包含信息的第二个 CSV 文件进行比较来填充第一个 CSV 文件中的列组。
我发现了如何比较一列,但是如何比较一个 csv 的列与另一个 csv 的三列以填充第一个 CSV 中的组列?
df1 = pd.read_csv('colors.csv')
df2 = pd.read_csv('colors_language.csv')
mergedStuff = pd.merge(df1, df2, on=['name'], how='inner')
#I have tried also this, but it gives me information of Empty DataFrame
my_list = df1['name'].unique().tolist()
lang = df2[df2['english'].isin(my_list)]
print(lang)
这是我的代码,但它不起作用。我认为这是因为列名仅在一个 csv 中,但是如何将第一个 csv 中的名称连接到第二个 csv 中的英语、法语、西班牙语列?
【问题讨论】:
-
在我看来,所有信息都在第二个 csv 中,而第一个 csv 是多余的。那是对的吗?如果是这样,您可以忽略第一个 csv 而只使用第二个
df2.set_index('group').stack().reset_index(name='name')[['name', 'group']]
标签: python-3.x pandas dataframe csv