问题描述
我正在尝试data_frame = data_frame.set_index('Name')
d = data_frame['Dimensions'].str.split(',|: ',expand=True)\
.rename(columns=lambda x: f'Meas_{x//2}' if x%2 else f'Dim_{x//2}')
df_out = pd.wide_to_long(d.reset_index(),['Dim','Meas'],'Name','No',sep='_' )\
.reset_index()
df_out['Name'] = df_out['Name'].str[0] + df_out['Dim']
df_out[['Name','Meas']].sort_values('Name')
一个包含cld字母的数据框指向主数据框。联接应基于两列。每行只有一列带有值,因为它们来自不同的模型。
以下是主要数据框:
Name Meas
0 1a 5cm
2 1b 6cm
4 1c 7cm
1 2a 4cm
3 2c 3cm
5 2e 5cm
这里是cld数据框:
ListView.builder(
physics: NeverScrollableScrollPhysics(),shrinkWrap: true,itemCount: this.user.list.length,itemBuilder: (BuildContext context,int index) {
return ListTile(
leading: Container(
width: screenWidth / 5,height: screenHeight / 3.5,child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(10.0)),child: CachednetworkImage(
imageUrl:
this.user.list[index].picture,fit: BoxFit.cover,),},
cld位于名为“ .group”的列中。将列保留为字符并将其转换为因数都将导致空列:
left_join
解决方法
这是您需要的吗?
main_df %>%
left_join(select(cld_df,crop,till,.group),by = c("crop","till")) %>%
left_join(select(cld_df,GW,"GW")) %>%
mutate(.group = coalesce(.group.x,.group.y)) %>%
select(-.group.x,-.group.y) %>%
print(n=99)
# # A tibble: 27 x 5
# crop till GW dm .group
# <chr> <chr> <chr> <dbl> <chr>
# 1 B X 250 12.5 " b"
# 2 B X 100 21.2 " b"
# 3 B X 500 9.09 " b"
# 4 B Y 250 9.66 " b"
# 5 B Y 100 32.3 " b"
# 6 B Y 500 10.6 " b"
# 7 B Z 250 6.13 " a "
# 8 B Z 100 49.7 " a "
# 9 B Z 500 28.9 " a "
# 10 A X 250 14.8 " ab"
# 11 A X 100 11.6 " ab"
# 12 A X 500 23.7 " ab"
# 13 A Y 250 22.9 " b"
# 14 A Y 100 8.59 " b"
# 15 A Y 500 20.9 " b"
# 16 A Z 250 34.7 " a "
# 17 A Z 100 25.1 " a "
# 18 A Z 500 12.0 " a "
# 19 C X 250 2.99 " ab"
# 20 C X 100 20.8 " b"
# 21 C X 500 5.69 " a "
# 22 C Y 250 35.6 " ab"
# 23 C Y 100 24.1 " b"
# 24 C Y 500 32.3 " a "
# 25 C Z 250 35.6 " ab"
# 26 C Z 100 8.36 " b"
# 27 C Z 500 6.07 " a "