pandas如何合并列表_如何在Pandas中将两列合并在一起

在Python中,当需要将具有多个值的列合并到一起时,可以使用Pandas的melt函数。例如,给定一个数据框,其中包含'年份'、'item1'和'item2'三列,通过melt函数可以将'item1'和'item2'合并成一列,同时保留'年份'列,得到连续行号的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有这些数据:

1975,a,b

1976,b,c

1977,b,a

1977,a,b

1978,c,d

1979,e,f

1980,a,f

我想要一个包含年份和项目的两列列表,如下所示:

1975,a

1975,b

...

我有这个代码:

import pandas

# Set column names

colnames=['Date','Item1','Item2']

# read csv adding column names

data = pandas.read_csv('/Users/Simon/Dropbox/Work/Datasets/lagtest.csv', names=colnames)

# create a dataframe with info on dates for first column

datelist1 = data[['Date', 'Item1']]

# create a dataframe with info on dates for first column

datelist2 = data[['Date', 'Item2']]

bigdatelist = datelist1.append(datelist2)

print bigdatelist

但它给了我这个:

Date Item1 Item2

0 1975 a NaN

1 1976 b NaN

2 1977 b NaN

3 1977 a NaN

4 1978 c NaN

5 1979 e NaN

6 1980 a NaN

0 1975 NaN b

1 1976 NaN c

2 1977 NaN a

3 1977 NaN b

4 1978 NaN d

5 1979 NaN f

6 1980 NaN f

我希望行号连续,并将最后两列合并为一列.有什么建议?

最佳答案 您正在寻找pd.melt.

假设您将此作为数据帧

>>> df

Date item1 item2

0 1975 a b

1 1976 b c

2 1977 b a

3 1977 a b

4 1978 c d

5 1979 e f

6 1980 a f

[7 rows x 3 columns]

现在用这个:

pd.melt(df, id_vars='year')['year','value']

得到你需要的东西.

>>> pd.melt(df, id_vars='Date')[['Date','value']]

Date value

0 1975 a

1 1976 b

2 1977 b

3 1977 a

4 1978 c

5 1979 e

6 1980 a

7 1975 b

8 1976 c

9 1977 a

10 1977 b

11 1978 d

12 1979 f

13 1980 f

[14 rows x 2 columns]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值