我有一个数据框df
,看起来像:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 810 entries, 0 to 809
Data columns (total 21 columns):
event_type 810 non-null object
datetime 810 non-null datetime64[ns]
person 810 non-null object
...
from_file 0 non-null float64
dtypes: datetime64[ns](1), float64(2), int64(2), object(16)
memory usage: 133.0+ KB
(有21列,但我只对以上四列感兴趣,因此省略了它们)
我想创建第二个数据帧df_b
,该数据帧有两列,其中一列是df
的{{1}}列的组合,而另一列是event_type,person,from_file
' s df
。我解释得很好吗?...(所以datetime
的四列中df_b
的两列中,但以上三列合并为df
中的一列)
我想到了创建一个新的数据帧df_b
的方式:
df_b
然后选择所有带有以下内容的行:
df_b = pandas.DataFrame({'event_type+person+from_file': [], 'datetime': []})
但是,除此之外,我不知道如何实现余数,我一直认为我最终将得到与原始行的df.loc[:, ['event_type','person','from_file','datetime']]
不对应的datetime
值从datetime
中拉出。
那么你能告诉我如何做吗
df
中的所有行中选择event_type
,person
,from_file
,datetime
df
,event_type
,person
,值之间为from_file
'+'
,event_type+person+from_file
放入datetime
?
答案 0 :(得分:0)
要删除NaN值,请使用:
df_clean = df.dropna(subset=['event_type', 'person', 'from_file'])
在Pandas中串联字符串列就像
一样容易df_clean['event_type+person+from_file'] = df_clean['event_type'] + '+' +
df_clean['person'] + '+' + df_clean['from_file']
然后:
df_b = df_clean[['event_type+person+from_file', 'datetime']].copy()