向数据框中的新列添加值
Posted
技术标签:
【中文标题】向数据框中的新列添加值【英文标题】:Adding values to new columns in data frame 【发布时间】:2020-11-08 06:18:44 【问题描述】:我有一个大数据框 (data_df) 并创建了四个新列。假设原始列是“A”、“B”、“C”、“D”,而四个新列是“E”、“F”、“G”、“H”。对于每一行(3000),我需要向新列添加值。在“E”中,它需要是 A/A+B。对于'F' B/A+B。对于'G' C/C+D。对于'H' D/C+D。我需要为每一行运行这个。
【问题讨论】:
【参考方案1】:这非常简单/直观。类似的问题是here,下面是您具体问题的答案。
import pandas as pd
### Make up data for example
A = [5, 8, 2, -1]
B = [1, 0, 1, 3]
df = pd.DataFrame(list(zip(A,B)), columns =['A', 'B'])
display(df)
### Calculate Column E
df['E'] = df['A'] / (df['A'] + df['B'])
display(df)
【讨论】:
【参考方案2】:回答你的具体问题
import pandas
df = pandas.DataFrame('A':[1,2], 'B':[3,4],'C':[5,6], 'D':[7,8])
df['E'] = df.apply(lambda row: row.A/(row.A + row.B), axis=1)
df['F'] = df.apply(lambda row: row.B/(row.A + row.B), axis=1)
df['G'] = df.apply(lambda row: row.C/(row.C + row.D), axis=1)
df['H'] = df.apply(lambda row: row.D/(row.C + row.D), axis=1)
print(df)
输出
A B C D E F G H
1 3 5 7 0.250000 0.750000 0.416667 0.583333
2 4 6 8 0.333333 0.666667 0.428571 0.571429
【讨论】:
以上是关于向数据框中的新列添加值的主要内容,如果未能解决你的问题,请参考以下文章
Pandas将groupby操作的结果保存为原始数据框中的新列[关闭]