Python 将数据帧的多列值合并到一列中,中间带括号
我有一个数据帧Python 将数据帧的多列值合并到一列中,中间带括号,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我有一个数据帧 category value percentage_difference Cosmetics 789.99 300.0 Fruits 27.68 400.0 Clothes 179.20 500.0 我想添加第四列,使其值为category(值,百分比) 对于for循环,我可以做什么?没有for循环还有其他有效的方法吗?使用列表理解的另一种方法: df = pd.DataFrame( { 'category': ['Cos
category value percentage_difference
Cosmetics 789.99 300.0
Fruits 27.68 400.0
Clothes 179.20 500.0
我想添加第四列,使其值为category(值,百分比)
对于for循环,我可以做什么?没有for循环还有其他有效的方法吗?使用列表理解的另一种方法:
df = pd.DataFrame( { 'category': ['Cosmetics', 'Fruits', 'Clothes'],
'value': [789.99,27.68, 179.20],
'percentage_difference': [300.0,400.0,500.0]})
df['merge_value'] = df.apply(lambda r: "{0}({1}, {2}%)".format(r['category'], r['value'], r['percentage_difference']), axis=1)
df['merge_value'] = ['{}({}, {:0}%)'.format(x, y, int(z)) for x, y, z in
df[['category', 'value', 'percentage_difference']].values]
[外]
另一种方法是将列添加为字符串:
df=df.assign(merge_value=
df.category+"("+df.value.astype(str)+','+df.percentage_difference.astype(str)+"%)")
print(df)
category value percentage_difference merge_value
0 Cosmetics 789.99 300.0 Cosmetics(789.99, 300%)
1 Fruits 27.68 400.0 Fruits(27.68, 400%)
2 Clothes 179.20 500.0 Clothes(179.2, 500%)
df=df.assign(merge_value=
df.category+"("+df.value.astype(str)+','+df.percentage_difference.astype(str)+"%)")
print(df)
category value percentage_difference merge_value
0 Cosmetics 789.99 300 Cosmetics(789.99,300%)
1 Fruits 27.68 400 Fruits(27.68,400%)
2 Clothes 179.20 500 Clothes(179.2,500%)