[英]replace empty list with values in another column in pandas dataframe
I am trying to replace list of values in one column with another column, below is data and script I am using我正在尝试用另一列替换一列中的值列表,下面是我正在使用的数据和脚本
old = [[51, 1],
[52, 1],
[53, -1],
[],
[54, 0],
[55, 0],
[52, 0],
[],
[52, 0],
[54, -1]]
import pandas as pd
df = pd.DataFrame(columns=['old','new'])
df["old"]=old
new = [[51, 1],
[52, 1],
[53, -1],
[54, -2],
[54, 0],
[55, 0],
[52, 0],
[55. -3],
[52, 0],
[54, -1]]
df["new"]=new
for index, row in df.iterrows():
if ((df["old"][index])==[]) :
df.old[index] = df.new[index]
Is there any better way than using for loop , actually in my script there are too many loops so i want to avoid using for loop for few data manipulation If anyone knows that will be great help有没有比使用 for 循环更好的方法,实际上在我的脚本中有太多循环,所以我想避免使用 for 循环进行少量数据操作如果有人知道这将有很大帮助
You can use Series.mask
:您可以使用Series.mask
:
# df['old'] = df['old'].mask(df['old'].str.len() == 0, df['new'])
df['old'].mask(df['old'].str.len() == 0, df['new'])
0 [51, 1]
1 [52, 1]
2 [53, -1]
3 [54, -2]
4 [54, 0]
5 [55, 0]
6 [52, 0]
7 [52.0]
8 [52, 0]
9 [54, -1]
Name: old, dtype: object
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.