[英]dataframe put must be a unicode string, not 0, how give the string not the dataframe
[英]How to Concat a DataFrame with String to a DataFrame with Unicode and normalize datatype
在Python2中將兩個具有不同類型的字符串的數據幀連接在一起時,我遇到了問題。 一個具有正常的Py2字符串,另一個具有unicode字符串。 串聯可以工作,但是numpy數組內部的類型內部保持不變(我確定是設計使然)。
import pandas as pd
from pandas import DataFrame, MultiIndex
from datetime import datetime as dt
df = DataFrame(data={'data': ['A', 'BBB', 'CC']},
index=MultiIndex.from_tuples([(dt(2016, 1, 1), 2),
(dt(2016, 1, 1), 3),
(dt(2016, 1, 2), 2)],
names=['date', 'id']))
df2 = DataFrame(data={'data': [u'AAAAAAA']},
index=MultiIndex.from_tuples([(dt(2016, 1, 2), 4)],
names=['date', 'id']))
df3 = pd.concat([df, df2])
輸出:
>>> df.data.values
array(['A', 'BBB', 'CC'], dtype=object)
>>> df2.data.values
array([u'AAAAAAA'], dtype=object)
>>> df3.data.values
array(['A', 'BBB', 'CC', u'AAAAAAA'], dtype=object)
如您所見,該數組現在已被“混合”,它具有字符串和unicode。 有沒有一種方法可以強制將其強制轉換為另一個? 如果不是,是否有一種簡單的方法來檢查一側是否為unicode,並將該列轉換為str或unicode?
(我很在意,因為pd.lib.infer_dtype會將這個numpy數組的dtype標記為“混合”,並且我需要將其標記為“字符串”或“ unicode”以區別於其他也可以存儲在熊貓中的對象/ numpy數組)
熊貓有一個astype方法,但它返回一個序列。 這將起作用。
df2_copy = pd.DataFrame(d2.data.astype(str))
df2_copy.data.values
array(['AAAAAAA'], dtype=object)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.