我有以下几点。 Dataframe :df
A B 0 23 12 1 21 44 2 98 21
如何从该数据框中删除列名A和B?一种方法可能是将其写入csv文件,然后在指定header=None中读取它。有没有一种方法可以做到这一点,而不写入到csv和重读?
A
B
bwitn5fc1#
我认为你不能删除列名,只能用range和shape重置它们:
range
shape
print df.shape[1] 2 print range(df.shape[1]) [0, 1] df.columns = range(df.shape[1]) print df 0 1 0 23 12 1 21 44 2 98 21
这与使用to_csv和read_csv相同:
to_csv
read_csv
print df.to_csv(header=None,index=False) 23,12 21,44 98,21 print pd.read_csv(io.StringIO(u""+df.to_csv(header=None,index=False)), header=None) 0 1 0 23 12 1 21 44 2 98 21
下一个skiprows解决方案:
skiprows
print df.to_csv(index=False) A,B 23,12 21,44 98,21 print pd.read_csv(io.StringIO(u""+df.to_csv(index=False)), header=None, skiprows=1) 0 1 0 23 12 1 21 44 2 98 21
ejk8hzay2#
如何摆脱标题(第一行)和索引(第一列)。要写入CSV文件,请执行以下操作:
df = pandas.DataFrame(your_array) df.to_csv('your_array.csv', header=False, index=False)
要从CSV文件读取:
df = pandas.read_csv('your_array.csv') a = df.values
如果你想读取一个不包含头的CSV文件,传递额外的参数header:
header
df = pandas.read_csv('your_array.csv', header=None)
axr492tv3#
我也遇到了同样的问题,但我用这种方式解决了它:
df = pd.read_csv('your-array.csv', skiprows=[0])
am46iovg4#
还没有看到这个解决方案,所以下面是我在不使用read_csv的情况下是如何做到的:
df.rename(columns={'A':'','B':''})
如果将所有列名重命名为空字符串,则返回的表将没有标题。如果你的表中有很多列,你可以先创建一个字典,而不是手动重命名:
df_dict = dict.fromkeys(df.columns, '') df.rename(columns = df_dict)
gdx19jrr5#
你可以先将DataFrame转换为Numpy数组,使用这个:s1=df.iloc[:,0:2].values然后,将numpy数组转换回DataFrame:s2=pd.DataFrame(s1)这将返回一个没有列的DataFrame。enter image description here
vlju58qv6#
这是完美的工作:要获取不带header的dataframe,请用途:
totalRow = len(df.index) df.iloc[1: totalRow]
或者你可以像这样使用第二种方法:
totalRow = df.index.stop df.iloc[1, totalRow]
lf3rwulv7#
从pandas DataFrame中删除头列。它可以做到不写入csv,然后再次阅读。解决方案:将列名替换为DataFrame的第一行。
df.columns = df.iloc[0,:].values
然后删除DataFrame的第一行。
df = df.tail(-1)
7条答案
按热度按时间bwitn5fc1#
我认为你不能删除列名,只能用
range
和shape
重置它们:这与使用
to_csv
和read_csv
相同:下一个
skiprows
解决方案:ejk8hzay2#
如何摆脱标题(第一行)和索引(第一列)。
要写入CSV文件,请执行以下操作:
要从CSV文件读取:
如果你想读取一个不包含头的CSV文件,传递额外的参数
header
:axr492tv3#
我也遇到了同样的问题,但我用这种方式解决了它:
am46iovg4#
还没有看到这个解决方案,所以下面是我在不使用read_csv的情况下是如何做到的:
如果将所有列名重命名为空字符串,则返回的表将没有标题。
如果你的表中有很多列,你可以先创建一个字典,而不是手动重命名:
gdx19jrr5#
你可以先将DataFrame转换为Numpy数组,使用这个:
s1=df.iloc[:,0:2].values
然后,将numpy数组转换回DataFrame:
s2=pd.DataFrame(s1)
这将返回一个没有列的DataFrame。enter image description here
vlju58qv6#
这是完美的工作:
要获取不带header的dataframe,请用途:
或者你可以像这样使用第二种方法:
lf3rwulv7#
从pandas DataFrame中删除头列。它可以做到不写入csv,然后再次阅读。
解决方案:
将列名替换为DataFrame的第一行。
然后删除DataFrame的第一行。