【发布时间】:2019-05-03 10:49:33
【问题描述】:
我想在数据框中连接列表格式的项目
我在下面有一个数据框,当我打印 DataFrame.head() 时,它显示在下面
A B
1 [1,2,3,4]
2 [5,6,7,8]
期望结果(将其从列表转换为以逗号分隔的字符串)
A B
1 1,2,3,4
2 5,6,7,8
【问题讨论】:
标签: python arrays python-3.x dataframe
我想在数据框中连接列表格式的项目
我在下面有一个数据框,当我打印 DataFrame.head() 时,它显示在下面
A B
1 [1,2,3,4]
2 [5,6,7,8]
期望结果(将其从列表转换为以逗号分隔的字符串)
A B
1 1,2,3,4
2 5,6,7,8
【问题讨论】:
标签: python arrays python-3.x dataframe
你可以这样做:
import pandas as pd
data = [[1, [1,2,3,4]],
[2, [5,6,7,8]]]
df = pd.DataFrame(data=data, columns=['A', 'B'])
df['B'] = [','.join(map(str, lst)) for lst in df.B]
print(df.head(2))
输出
A B
0 1 1,2,3,4
1 2 5,6,7,8
【讨论】:
您可以为此使用map 或apply 方法:
import pandas as pd
data = [[1, [1,2,3,4]],
[2, [5,6,7,8]]]
df = pd.DataFrame(data=data, columns=['A', 'B'])
df['B'] = df['B'].map(lambda x: ",".join(map(str,x)))
# or
# df['B'] = df['B'].apply(lambda x: ",".join(map(str,x)))
print(df.head(2))
【讨论】:
df = pd.DataFrame([['1',[1,2,3,4]],['2',[5,6,7,8]]], columns=list('AB'))
将列表转换为字符串的通用方法。在您的示例中,您的列表是 int 类型,但它可以是任何可以表示为字符串的类型,以使用 ','.join(map(str, a_list)) 加入列表中的元素然后只需遍历包含您的列表的特定列中的行想加入
for i, row in df.iterrows():
df.loc[i,'B'] = ','.join(map(str, row['B']))
【讨论】: