python - pandas df 可以有可供选择的列数吗?

标签 python pandas dataframe

我在 pandas 数据框中有一些类似这样的数据,称为评级:

           rating                                                        
id       10063204 10073140 10077387 10091371 10124740 10136418 10146903
user_id
10003869      NaN      8.0      NaN      NaN      3.0      NaN      NaN
10022889      NaN      NaN      1.0      NaN      NaN      NaN      NaN

user_id 代表行,id 代表列,评级作为值。 我查遍了互联网,但找不到答案:

我使用的列是数字,8 位数字,目前它们是整数(或 float ,无论如何它们都不是字符串),但我无法在给定 id 的情况下搜索或选择它们,除非它们是字符串。

使用 loc/iloc 不起作用,因为它们是列号。

例如,假设我有 id:10146903(这里的最后一列,但真实的数据集有数千列,所以我不知道它的列号只是给定这个 id),但我有数千列,我想拉取该特定 ID 的列。

我是否必须将它们更改为字符串才能像这样搜索它们?或者如果它们不是字符串,有没有办法找到它?我不想将它们转换为字符串,因为稍后它们必须再次变成整数。

我想我可以使用这些数字作为列的索引,但似乎只能在行上这样做。

我试图这样做:

specificID = ratings[10146903]

但这只是返回

KeyError: 'the label [10146903] is not in the [index]'

最佳答案

使用双方括号表示索引数组,例如df[[j,j]] 那么 ij 可以是整数。

示例:

>>> np.random.seed(0)
>>> df = pd.DataFrame(np.random.randn(8, 4),  columns=[1234, 56, 7, 890])
>>> df
       1234      56        7         890 
0  1.764052  0.400157  0.978738  2.240893
1  1.867558 -0.977278  0.950088 -0.151357
2 -0.103219  0.410599  0.144044  1.454274
3  0.761038  0.121675  0.443863  0.333674
4  1.494079 -0.205158  0.313068 -0.854096
5 -2.552990  0.653619  0.864436 -0.742165
6  2.269755 -1.454366  0.045759 -0.187184
7  1.532779  1.469359  0.154947  0.378163
>>> df[[56]]
         56
0  0.400157
1 -0.977278
2  0.410599
3  0.121675
4 -0.205158
5  0.653619
6 -1.454366
7  1.469359

关于python - pandas df 可以有可供选择的列数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41308316/

相关文章:

python - 在 python 中更改和解析大型 XML 文件的内存有效方法

python - 如何在Python中编写一个递归生成向量的函数?

datetime - 用 Pandas 数据框矢量化复杂切片

python - 根据关联值将值连接到多列中

python - 根据其他数据帧中的值检索一行数据帧中的值

python - Scrapy - Javascript 网站

python - 在方法链中用 nan 替换数据帧列负值

python - 从excel表中计算特定行的平均值

python - 使用另一个数据框的值,根据列名乘以 Pandas 数据框的行

r - R中下一整年的上个月年值