我有一个 Dataframe ,它的数据是字符串,不同的信息混合在一个列中。就像这样:
||
0|地点:House
1|日期/时间:01/02/03 09:30
2|颜色:黄色
3|地点:Street
4|日期/时间:12-12-13 13:21:21
5|颜色:红色
df = pd.DataFrame(['Place: House','Date/Time: 01/02/03 at 09:30', 'Color:Yellow', 'Place: Street','Date/Time: 21/12/13 at 13:21:21', 'Color:Red'])
我需要这样的 Dataframe :
Place|日期/时间|颜色
-|-|
HOUSE|01-02/03|黄色
街道|2013年12月21日|红色
我首先将EXCEL文件转换为CSV,然后尝试按如下方式打开它:
df = pd.read_csv(filename, sep=":")
我尝试使用“:”分隔各列,但时间格式也使用“:”,因此不起作用。时间不是重要的信息,所以我甚至试着删除它并保留日期,但我也找不到一种方法来不影响专栏中的其他信息。
2条答案
按热度按时间zmeyuzjn1#
给定数据中的值,您将需要将拆分限制为只发生一次,这可以使用Split的
n
参数来实现。您可以将拆分值展开为两列,然后透视。这里的诀窍是以
df.index // 3
为索引创建一个分组,这样每3行就在一个新的组中。输出
j0pj023g2#
您的数据都是字符串,在将其带回Pandas之前,您可能会在普通的Python中对其进行处理,从而获得更好的性能;唯一可能在Pandas中获得更好的字符串性能的情况是,如果您使用的是pyrow字符串数据类型。