在pandas DataFrame中旋转元组,直到特定的行元素

问题描述 投票:0回答:1

我正在尝试将简单的tuple [2]数据集转换为可用的熊猫格式。我将以用户数据集为例。

我的输入如下:

properties, value
username, 1 
email, 2 
created, 3 
username, 4 
email, 5 
created, 6

每次“用户名”出现在第一列中时,下面的元组都属于该用户。我正在尝试将其转换为一种格式,其中每个用户都在单行中列出,其属性在列中。

所需的输出:

username, email, created
1, 2, 3
4, 5, 6

我已将输入文件加载到熊猫数据框df

with open('input.csv', encoding='utf-16') as f:
    df = pd.read_csv(f, sep=" :", engine='python', header=None, parse_dates=True)

然后我想我会使用pivot函数,但是我收到以下不确定的错误,我不确定如何解决:

ValueError: Index contains duplicate entries, cannot reshape

有人可以在正确的方向帮助我吗?

python python-3.x pandas
1个回答
0
投票

首先,假设用户名,电子邮件和创建的对象是列表对象。每当创建用户时,每个列表的索引都会得到满足。

username = list()
email = list()
created = list()

# Add some elements for first user
username.append('1')
email.append('2')
created.append('3')

# Add some elements for second user
username.append('4')
email.append('5')
created.append('6')

然后,您要做的就是创建带有列表名称的列并正确放置数据。

df = pd.DataFrame(list(zip(username, email, created)), columns=['Username', 'Email', 'Created'])

# Printing without indexes
print(df.to_string(index=False))

打印DataFrame的结果将是:

Username Email Created
       1      2       3
       4      5       6
© www.soinside.com 2019 - 2024. All rights reserved.