使用唯一值在Dataframe中组合两行

时间:2018-04-12 20:46:32

标签: python pandas dataframe

我将列表转换为Dataframe,现在我的数据看起来像这样。

Data looks like this.

我想使用唯一的Business ID合并此Dataframe中的两行。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

first中使用groupby获取第一个非空值

考虑数据框df

df = pd.DataFrame(dict(
    Bars=[np.nan, 1, 1, np.nan],
    BusID=list('AABB'),
    Nightlife=[1, np.nan, np.nan, 1]
))
df

   Bars BusID  Nightlife
0   NaN     A        1.0
1   1.0     A        NaN
2   1.0     B        NaN
3   NaN     B        1.0

然后

df.groupby('BusID', as_index=False).first()


  BusID  Bars  Nightlife
0     A   1.0        1.0
1     B   1.0        1.0

答案 1 :(得分:2)

您可以使用df.groupby('Business ID').sum()之类的内容。举个例子:

df = pd.DataFrame(data = {'a': [1, 2, 3, 1],
                          'b': [5, 6, None, None],
                          'c': [None, None, 7, 8]})
df
#    a    b    c
# 0  1  5.0  NaN
# 1  2  6.0  NaN
# 2  3  NaN  7.0
# 3  1  NaN  8.0

new_df = df.groupby('a').sum()
new_df
#    b    c
# a          
# 1  5.0  8.0
# 2  6.0  0.0
# 3  0.0  7.0