Python Pandas连接列csv

时间:2018-12-18 22:03:13

标签: python pandas csv concatenation

我要连接的Users_id列表很大。我知道如何在excel中执行此操作,但是文件太大。

Users ID    
101 101
102 101,102
103 101,102,103
104 101,102,103,104

这是我想要实现的目标。这是我到目前为止所拥有的。

import pandas as pd

df = pd.read_csv('file.csv')

pd.concat = df['USER ID']=.astype(str)+','+df['USER ID']

2 个答案:

答案 0 :(得分:1)

这是一个不寻常的操作,因为您的输入是数字,而您的输出是一个用逗号分隔的字符串序列。一种解决方案是将itertools.accumulate与f字符串一起使用(Python 3.6; PEP498):

import pandas as pd
from itertools import accumulate

df = pd.DataFrame({'Users': [101, 102, 103, 104]})

def joiner(x, y):
    return f'{x},{y}'

df['Cumulative'] = list(accumulate(df['Users'].astype(str), func=joiner))

print(df)

   Users       Cumulative
0    101              101
1    102          101,102
2    103      101,102,103
3    104  101,102,103,104

答案 1 :(得分:0)

我不理解您的代码。 如果要串联所有用户ID,则应遍历ID列并手动串联所有ID。以下代码应该这样做

id_column=df['ID']
all_ids=''
for id in id_column:
    all_ids+=str(id)+','

所有ID都应包含在变量all_id中。