在Pandas Dataframe中使用for循环创建一个列
在已经创建的数据框架中添加一个新的列是非常容易的。添加一个新的列实际上是为了处理先前创建的数据框架的数据。为此,我们可以处理现有的数据,并建立一个单独的列来存储数据。最简单的方法是通过创建一个新的列并为其分配新的值来添加一个新的列和数据。比如说。
import pandas as pd
# Creating new dataframe
initial_data = {'First_name': ['Ram', 'Mohan', 'Tina', 'Jeetu', 'Meera'],
'Last_name': ['Kumar', 'Sharma', 'Ali', 'Gandhi', 'Kumari'],
'Marks': [12, 52, 36, 85, 23] }
df = pd.DataFrame(initial_data, columns = ['First_name', 'Last_name', 'Marks'])
df['Results']=['Fail','Pass','Pass','Pass','Fail']
df
输出:
First_name Last_name Marks Results
0 Ram Kumar 12 Fail
1 Mohan Sharma 52 Pass
2 Tina Ali 36 Pass
3 Jeetu Gandhi 85 Pass
4 Meera Kumari 23 Fail
但是当这个列需要进行一些计算或者我们需要根据某些列的值来添加新的值时,我们可以使用for循环。让我们看看如何使用for循环在pandas数据框架中创建一个列。在给定的例子中,我们根据现有数据框架df的Marks列中的标记来创建一个新的列Result。如果分数列中的值大于等于33,那么新列Result中的值将是 “通过”,如果分数列中的值小于0,大于100,那么插入 “Result “列中的值将是 “无效”,否则它应该添加值为 “失败”。
示例#2
# importing pandas
import pandas as pd
# Creating new dataframe
initial_data = {'First_name': ['Ram', 'Mohan', 'Tina', 'Jeetu', 'Meera'],
'Last_name': ['Kumar', 'Sharma', 'Ali', 'Gandhi', 'Kumari'],
'Marks': [12, 52, 36, 85, 23] }
df = pd.DataFrame(initial_data, columns = ['First_name', 'Last_name', 'Marks'])
# Generate result using pandas
result = []
for value in df["Marks"]:
if value >= 33:
result.append("Pass")
elif value < 0 and value > 100:
result.append("Invalid")
else:
result.append("Fail")
df["Result"] = result
print(df)
输出:
First_name Last_name Marks Result
0 Ram Kumar 12 Fail
1 Mohan Sharma 52 Pass
2 Tina Ali 36 Pass
3 Jeetu Gandhi 85 Pass
4 Meera Kumari 23 Fail
示例#3
我们还可以使用List comprehension来创建一个新的列。
df['Results'] = ['Pass' if m>=33 else 'Fail' for m in df['Marks']]
df
输出:
First_name Last_name Marks Results
0 Ram Kumar 12 Fail
1 Mohan Sharma 52 Pass
2 Tina Ali 36 Pass
3 Jeetu Gandhi 85 Pass
4 Meera Kumari 23 Fail