gpt4 book ai didi

python - 如何在 python 中将 "key"列与彼此分开的列写入 csv

转载 作者:太空宇宙 更新时间:2023-11-04 02:00:58 24 4
gpt4 key购买 nike

在 Python 中,我想分解一个数据框并将每个“键”、“列”对写入 CSV 文件。行有时还包含每列不止一个值。

数据框如下所示(列数不会始终相同)

col1     col2     key    col3
a b c d
a1 b1 c1 d1,d4
a2 b2,b4 c2 d2
a3 b3 c3 d3

我需要的是3个CSV文件,如下所示:

col.csv
key col1
c a
c1 a1
c2 a2
c3 a3

col2.csv
key col2
c b
c1 b1
c2 b2
c2 b4
c3 b3

col3.csv
key col3
c d
c1 d1
c1 d4
c2 d2
c3 d3

我所做的是将每一列写到 CSV 中,列名作为 CSV,但是我无法将“关键”列写入 CSV。

z = df[df_obj.columns]

for c in z.columns:
df[c].to_csv(cwd + '/split/' + c + '.csv', index=False)

我得到的是:

col1.csv
col1
a
a1
a2
a3

col2.csv
col2
b
b1
b2,b4
b3

col3.csv
col3
d
d1,d4
d2
d3

最佳答案

您介意尝试以下操作吗?这个想法只是首先将 keys 列作为一个单独的系列提取出来,然后您可以在迭代这些列时使用它。

import os
import pandas as pd

>>>df
col1 col2 key col3
a b c d
a1 b1 c1 d1,d4
a2 b2,b4 c2 d2
a3 b3 c3 d3

# Create a key series
keys = [r for r in df.key]
# Exclude the keys column from the dataframe
df = df.drop('key', axis=1)

for c in df.columns:
ser1 = df[c].str.split(',')
data = pd.DataFrame([(keys[i], j) for i in range(len(keys)) for j in ser1[i]])
data.to_csv(os.path.join(os.getcwd(),c,'.csv'), index=False)

关于python - 如何在 python 中将 "key"列与彼此分开的列写入 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55720826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com