仅当第一行是其他下一行的子字符串时,如何将 DataFrame 行与另一行平均
How to average DataFrame row with another row only if the first row is a substring of other next row
我有一个名为 'data' 的数据框:
USER VALUE
XOXO 21
ABC-1 2
ABC-1B 4
ABC-2 4
ABC-2B 6
PEPE 12
我想使用第一个 USER 名称将 'ABC-1' 和 'ABC-1B' 组合成一行,然后对这两个值进行平均以得出此处:
USER VALUE
XOXO 21
ABC-1 3
ABC-2 5
PEPE 12
数据帧可能没有顺序,并且其中还有其他不需要平均的不相关值。我只想平均 'XXX-X' 在 'XXX-XB'
中的两行
data = pd.DataFrame({'USER':['XOXO','ABC-1','ABC-1B','ABC-2','ABC-2B', 'PEPE'], 'VALUE':[21,2,4,4,6,12]})
我们来试试,
df.USER = df.USER.str.replace('(-\d)B', r"")
df = df.groupby("USER", as_index=False, sort=False).VALUE.mean()
print(df)
USER VALUE
0 XOXO 21
1 ABC-1 3
2 ABC-2 5
3 PEPE 12
我有一个名为 'data' 的数据框:
USER VALUE
XOXO 21
ABC-1 2
ABC-1B 4
ABC-2 4
ABC-2B 6
PEPE 12
我想使用第一个 USER 名称将 'ABC-1' 和 'ABC-1B' 组合成一行,然后对这两个值进行平均以得出此处:
USER VALUE
XOXO 21
ABC-1 3
ABC-2 5
PEPE 12
数据帧可能没有顺序,并且其中还有其他不需要平均的不相关值。我只想平均 'XXX-X' 在 'XXX-XB'
中的两行data = pd.DataFrame({'USER':['XOXO','ABC-1','ABC-1B','ABC-2','ABC-2B', 'PEPE'], 'VALUE':[21,2,4,4,6,12]})
我们来试试,
df.USER = df.USER.str.replace('(-\d)B', r"")
df = df.groupby("USER", as_index=False, sort=False).VALUE.mean()
print(df)
USER VALUE
0 XOXO 21
1 ABC-1 3
2 ABC-2 5
3 PEPE 12