Python 如何在列具有混合数据类型的情况下添加两行?

Python 如何在列具有混合数据类型的情况下添加两行?,python,python-3.x,pandas,csv,Python,Python 3.x,Pandas,Csv,我有一个如下所示的数据框: 现在,我想为1和2列中的值添加第2行和第3行 所以输出应该是 0 1 2 Time Blocks Left Blocks Added 0 NaN Monday Tuesday 1 NaN 2020-01-01 2020-01-02 2 01:00:00 44

我有一个如下所示的数据框:


现在,我想为1和2列中的值添加第2行和第3行

所以输出应该是

    0             1                  2
   Time        Blocks Left      Blocks Added
0   NaN         Monday            Tuesday
1   NaN        2020-01-01        2020-01-02
2  01:00:00       44               1420
3  02:00:00       55               1520
4  03:00:00       65               1000
5  04:00:00       75               1110
                  99               2940

但是,由于第1列和第2列在第1行中包含日期,因此熊猫将整个列检测为对象数据类型,因此有人能告诉我在这种情况下如何进行添加吗?

我认为更好的方法是使用列中具有多索引的DataFrame,而不是将数据与元数据混合:

df = df.set_index(0)
t = df.iloc[:3].apply(tuple).tolist()
df.columns = pd.MultiIndex.from_tuples(t)
df = df.iloc[3:].astype(int).rename_axis(None)
print (df)
         Blocks Left Blocks Added
              Monday      Tuesday
          2020-01-01   2020-01-02
01:00:00          44         1420
02:00:00          55         1520
03:00:00          65         1000
04:00:00          75         1110
如果可能,在
read\u csv
中使用列中的
多索引创建
DataFrame

df = pd.read_csv(file, index_col=[0], header=[0,1,2])
然后,您可以通过以下方式添加新行:

你可以试试这个

df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
df
   A  B
0  1  2
1  3  4
df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))
df.append(df2)
   A  B
0  1  2
1  3  4
0  5  6
1  7  8

如果您可以提供一个代码来复制输入数据帧就更好了,因为它是一个mulltiindex,并且很难复制和复制
df.loc['05:00:00'] = [99, 2940]
print (df)
         Blocks Left Blocks Added
              Monday      Tuesday
          2020-01-01   2020-01-02
01:00:00          44         1420
02:00:00          55         1520
03:00:00          65         1000
04:00:00          75         1110
05:00:00          99         2940
df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
df
   A  B
0  1  2
1  3  4
df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))
df.append(df2)
   A  B
0  1  2
1  3  4
0  5  6
1  7  8